C#列表中的独特列表

C# Distinct List from a List

本问题已经有最佳答案,请猛点这里访问。

我有占用结果列表

1
 List<Occupancy> occupancyResultList = new List<Occupancy>();

占有率

1
2
3
4
5
6
7
8
9
public partial class Occupancy
{
    public Nullable<System.DateTime> on_date { get; set; }
    public string type_code { get; set; }
    public Nullable<int> available { get; set; }
    public Nullable<decimal> rate { get; set; }
    public string rate_code { get; set; }
    public string publish_flag { get; set; }
}

我想创建另一个列表,该列表具有不同的日期值,类型代码,可用

distinct()生成返回repeatition的所有列的已区分结果。

你能帮我一把吗?

提前谢谢!


您可以使用匿名类型的GroupBy作为密钥:

1
2
3
4
occupancyResultList = occupancyResultList
        .GroupBy(x => new { x.on_date, x.type_code, x.available })
        .Select(g => g.First())
        .ToList();

DistinctBy法:

1
2
3
occupancyResultList = occupancyResultList
        .DistinctBy(x => new { x.on_date, x.type_code, x.available })
        .ToList();