📅  最后修改于: 2023-12-03 15:13:48.809000             🧑  作者: Mango
在C#中,如果我们想要对对象集合进行去重操作,我们可以使用Distinct
函数来实现。但是,如果我们要根据对象的某个属性进行去重,就需要一些额外的操作。
本文将介绍如何在C#中使用LINQ查询语句和Lambda表达式,根据对象的属性进行去重操作。
使用LINQ查询语句进行去重操作的核心代码如下:
var distinctList = (from item in list
group item by item.PropertyName into g
select g.First()).ToList();
其中,list
是我们要去重的对象集合,PropertyName
是我们要根据的属性名称。
首先,我们将对象集合按照PropertyName
属性进行分组,然后取每个分组的第一个元素,最终得到一个去重后的结果集。我们可以使用ToList
函数将结果转化为列表。
我们也可以使用Lambda表达式来实现相同的去重操作,代码如下:
var distinctList = list
.GroupBy(x => x.PropertyName)
.Select(g => g.First())
.ToList();
这里,list
是我们要去重的对象集合,PropertyName
是我们要根据的属性名称。
我们首先将对象集合按照PropertyName
属性进行分组,然后取每个分组的第一个元素,最终得到一个去重后的结果集。我们可以使用ToList
函数将结果转化为列表。
无论是使用LINQ查询语句还是Lambda表达式,我们都可以轻松地根据对象的属性进行去重操作。这种方法可以应用于任何ICollection对象集合,是一种非常简单而且实用的方法。