gpt4 book ai didi

c# - Linq 获得不同的属性

转载 作者:太空宇宙 更新时间:2023-11-03 18:03:42 28 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





LINQ's Distinct() on a particular property

(23 个回答)


5年前关闭。




我有一个看起来像这样的数据表(不是我的表无法更改数据)

Code     Version    Description
AAA 0.0.0.0 Test of AAA
AAA 0.0.0.1 Test of AAA
BBB 0.0.0.0 Test of BBB
CCC 0.0.0.0 Test of CCC
CCC 0.0.0.1 Test of CCC

我只想返回唯一的“代码”值列表。
所以我想要的结果是:
AAA   Test of AAA
BBB Test of BBB
CCC Test of CCC

我创建了一个比较器类:
public class MyComparer : IEqualityComparer<MY_DATA_TABLE>
{
public bool Equals(MY_DATA_TABLE x, MY_DATA_TABLE y)
{
return x.CODE == y.CODE;
}

public int GetHashCode(MY_DATA_TABLE obj)
{
return obj.GetHashCode();
}
}

在我的代码中,我有:
var mapCodes = (from mtc in GetAllData() select mtc)
.Distinct(new MyComparer ())
.ToList();

但是,它仍在返回全部内容。

如何按属性获得不同的列表?

最佳答案

另一种选择是进行分组,如果 Version 则取每组中的第一个值。没关系。

var mapCodes = (from mtc in GetAllData()
group mtc by mtc.Code into grp
select grp.First()).ToList();

关于c# - Linq 获得不同的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40982032/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com