c#中集合中去除重复项

简介:  问题:取数据库表中DateTime类型字段时,截取年份子串,去除重复字段,如何处理? 方法:使用Linq中的Lambda表达式,可以轻松实现,以下是简单的示例代码:     publi...

 问题:取数据库表中DateTime类型字段时,截取年份子串,去除重复字段,如何处理?

 方法:使用Linq中的Lambda表达式,可以轻松实现,以下是简单的示例代码:

 

    public void BindNF()
    {
        //这里要去除相同的年份,通过Linq的Lambda表达式实现
        DM dm = new DM();
        string strSQL = "select * from [预警记录] ";
        DataSet ds = dm.getsql(strSQL);
        ArrayList al = new ArrayList();
        foreach (DataRowView drv in ds.Tables[0].DefaultView)
        {
            al.Add(drv["发布时间"].ToString().Substring(0, drv["发布时间"].ToString().IndexOf("-")));
        }
        //构造泛型集合
        List<string> years = new List<string>();
        for (int i = 0; i < al.Count; i++)
        {
            years.Add(al[i].ToString());
        }

        //Distinct()方法用于返回序列中的非重复元素
        var result = years.Distinct();

        this.ddlNF.DataSource = result;
        this.ddlNF.DataBind();
    }

 

2、另外一种非LINQ实现方法,利用普通的循环比较方法也可以实现:

        string s1= "a,b"; string s2 = "a,b,c,d"; string[] str1 = s1.Split(','); string[] str2 = s2.Split(','); string s3 = ""; bool flag = true; foreach (string tempS in str2) { flag = true; foreach (string tempS2 in str1) { if (tempS2 == tempS) { flag = false; break; } } if (flag) { s3 += tempS + ","; } } if (s3 != "") { s3 = s3.Remove(s3.Length - 1, 1); } Response.Write(s3);

相关文章
|
4月前
|
SQL 开发框架 .NET
C#进阶-LINQ实现对集合的增删改查
本篇演示了LINQ在日常开发中的常用操作,实现结果集的增删改查。目前LINQ支持两种语法,我会在每个案例前先用大家熟知的SQL语句表达,再在后面用C#的两种LINQ语法分别实现。LINQ语法第一次接触难免感到陌生,最好的学习方式就是在项目中多去使用,相信会有很多感悟。
70 0
|
4月前
|
存储 人工智能 C#
【Unity 3D】C#中数组、集合、栈、队列、哈希表、字典的讲解(附测试代码)
【Unity 3D】C#中数组、集合、栈、队列、哈希表、字典的讲解(附测试代码)
66 0
|
13天前
|
存储 C# 索引
C# 一分钟浅谈:数组与集合类的基本操作
【9月更文挑战第1天】本文详细介绍了C#中数组和集合类的基本操作,包括创建、访问、遍历及常见问题的解决方法。数组适用于固定长度的数据存储,而集合类如`List<T>`则提供了动态扩展的能力。文章通过示例代码展示了如何处理索引越界、数组长度不可变及集合容量不足等问题,并提供了解决方案。掌握这些基础知识可使程序更加高效和清晰。
48 2
|
26天前
|
存储 C# 索引
C# 集合语法全解
C# 集合语法全解
25 0
|
10月前
|
存储 安全 搜索推荐
c#集合_键值对Dictionary & SortedList
在 C# 中,键值对是一种常见的数据结构,可以使用不同的集合类实现。以下是常用的键值对集合类::一种使用哈希表实现的键值对集合。它通过将键哈希为桶号,然后将值存储在桶中进行快速查找。:一种基于数组实现的键值对集合。它会将键值对按照键排序并存储在数组中,以支持快速访问、查找和枚举。:一种使用红黑树实现的键值对集合。它能够按照键的排序进行快速查找,也可以快速地插入和删除键值对,并且该树具备自平衡的特性,使得插入、删除和搜索性能都非常优秀。
114 1
|
4月前
|
存储 安全 Java
34.C#:listT泛型集合
34.C#:listT泛型集合
50 1
|
4月前
|
存储 C#
33.c#:hashtable集合
33.c#:hashtable集合
31 1
|
4月前
|
存储 安全 Java
32.C#:ArrayList集合
32.C#:ArrayList集合
32 1
|
4月前
|
开发框架 安全 .NET
C# .NET面试系列三:集合、异常、泛型、LINQ、委托、EF!
<h2>集合、异常、泛型、LINQ、委托、EF! #### 1. IList 接口与 List 的区别是什么? IList 接口和 List 类是C#中集合的两个相关但不同的概念。下面是它们的主要区别: <b>IList 接口</b> IList 接口是C#中定义的一个泛型接口,位于 System.Collections 命名空间。它派生自 ICollection 接口,定义了一个可以通过索引访问的有序集合。 ```c# IList 接口包含一系列索引化的属性和方法,允许按索引访问、插入、移除元素等。 由于是接口,它只定义了成员的契约,而不提供具体的实现。类似于 IEnumera
318 2
|
4月前
|
存储 SQL C#
C# 读取二维数组集合输出到Word预设表格
C# 读取二维数组集合输出到Word预设表格