给出以下简单属性
Class Data
{
public string AA { get; set; }
public int BB { get; set; }
public int CC { get; set; }
...
}
和数据项列表
List<Data> Items = new List<Data>;
有一些示例数据
"2002", 3 ,5 ..
"2002", 3 ,5 ..
"2006", 4 ,2 ..
"2002", 3 ,5 ..
"2018", 9 ,7 ..
"2018", 5 ,5 ..
我需要找到字符串AA的distint值,所以我可以使用以下代码
foreach(var itm = Items.Select(x => x.AA).Distinct()))
{
use itm ...
}
corectly返回itm = string&#34; 2002&#34;,&#34; 2006&#34;和&#34; 2018&#34;,但是我还需要恢复一些剩余的属性,例如BB等,用于&#34; Distinctly Selected&#34;项目,也将与主要领域明显相关。
我尝试过manys方法来尝试实现这一目标,但一直没有成功,所以如果有人能指出如何实现这一点,那将会很感激。
我试图恢复该项目的索引,返回基本项目,即返回时工作的数据 列表中的所有项目。
实际上有成千上万的数据项,我需要恢复链接到distint数据项的字段。
我目前有一个可行的解决方案,我在其中提取不同的项目,然后使用生成的列表搜索第一个匹配的项目,然后恢复数据。它可以工作但不是很精致,因为我必须在列表中处理额外的时间。
注意此解决方案中没有SQL选项,提供的数据是XML或JSON解决方案必须是独立的exe
欢迎评论
由于
答案 0 :(得分:1)
Distinct只是一个没有任何聚合的组。你想要的是在Items.GroupBy(x => x.AA, x => x, (x,grp) => grp.First())
上分组然后聚合这些值,特别是你想要进行第一场比赛,这可以这样做。
{{1}}
答案 1 :(得分:0)
创建另一个变量并在该变量上应用group by它应该可以工作。
var another_item = Items.GroupBy(x => x.AA).ToList();
foreach(var itm in another_item)
{
use itm ...
}