首页 / C#开发 / 正文

[LINQ].NET/C#应用程序开发中如何使用LINQ去重集合中的元素?

273 发布于: 2018-04-19 12:57 读完约需 1 分钟

问题描述

在.NET/C#应用程序开发过程中,当前有类似如下的数据集合,如:

Red
Red
Brown
Yellow
Green
Green
Brown
Red
Orange

现在需要使用LING将这个集合中的元素进行去重处理,并返回惟一的元素集合,如:

Red
Brown
Yellow
Green
Orange

现在如下的LINQ查询语句:

var uniqueColors = from dbo in database.MainTable
                   where dbo.Property == true
                   select dbo.Color.Name;

以上LINQ查询出来的是所有的颜色集合,包含重复的元素集合。
那么,要查询惟一元素的集合,使用LINQ查询语句应该如果实现呢?

方案一

使用LINQDistinct()方法,如下:

var uniqueColors = 
               (from dbo in database.MainTable 
                 where dbo.Property == true 
                 select dbo.Color.Name).Distinct().OrderBy(name=>name);

方案二

使用LINQ查询语法完成的排序,如下:

var uniqueColors = (from dbo in database.MainTable
                    where dbo.Property
                    orderby dbo.Color.Name ascending
                    select dbo.Color.Name).Distinct();

郑重申明:本文未经许可,禁止任何形式转载

上一篇: [Entity Framework].NET/C#应用程序开发中如何获取由EF(Entity Framework)写入数据后生成的自增ID呢?

下一篇: [LINQ].NET/C#应用程序开发中如何使用LINQ查询集合List<T>中N的倍数索引位置的所有元素?

本文永久链接码友网 » [LINQ].NET/C#应用程序开发中如何使用LINQ去重集合中的元素?

分享扩散:

发表评论

登录用户才能发表评论, 请 登 录 或者 注册