📜  c# distinct by property - 不管(1)

📅  最后修改于: 2023-12-03 15:13:48.809000             🧑  作者: Mango

C# distinct by property - 不管

在C#中,如果我们想要对对象集合进行去重操作,我们可以使用Distinct函数来实现。但是,如果我们要根据对象的某个属性进行去重,就需要一些额外的操作。

本文将介绍如何在C#中使用LINQ查询语句和Lambda表达式,根据对象的属性进行去重操作。

使用LINQ查询语句进行去重

使用LINQ查询语句进行去重操作的核心代码如下:

var distinctList = (from item in list
                    group item by item.PropertyName into g
                    select g.First()).ToList();

其中,list是我们要去重的对象集合,PropertyName是我们要根据的属性名称。

首先,我们将对象集合按照PropertyName属性进行分组,然后取每个分组的第一个元素,最终得到一个去重后的结果集。我们可以使用ToList函数将结果转化为列表。

使用Lambda表达式进行去重

我们也可以使用Lambda表达式来实现相同的去重操作,代码如下:

var distinctList = list
    .GroupBy(x => x.PropertyName)
    .Select(g => g.First())
    .ToList();

这里,list是我们要去重的对象集合,PropertyName是我们要根据的属性名称。

我们首先将对象集合按照PropertyName属性进行分组,然后取每个分组的第一个元素,最终得到一个去重后的结果集。我们可以使用ToList函数将结果转化为列表。

结论

无论是使用LINQ查询语句还是Lambda表达式,我们都可以轻松地根据对象的属性进行去重操作。这种方法可以应用于任何ICollection对象集合,是一种非常简单而且实用的方法。