我有一个列表(主列表),其中包含以下内容
PsID Nominprsn
---- ---------
1 James
2 Troy
2 William
3 Mike
4 Jason
4 Hendry
我需要从给定的PsID
获取名字
所以结果就是这样
PsID Nominprsn
---- ---------
1 James
2 Troy
3 Mike
4 Jason
我尝试了以下但未成功,因为我不知道如何获得第一个PsID
:
var proglis = (from ts in mainlist
group ts by new { ts.PsID, Nominprsn} into grp
select new {grp.Key.PsID grp.Key.Nominprsn}).ToList();
答案 0 :(得分:2)
要从每个组中选择第一项,请使用以下查询:
var query = mainlist.GroupBy(o => o.PsID)
.Select(g => new { PsID = g.Key, g.First().Nominprsn })
.ToList();
这将返回您在问题中显示的相同结果。结果将是IEnumerable
个匿名类型,其属性名为PsID
和Nominprsn
。
答案 1 :(得分:1)
您应该如何做到这一点:
var proglis = (from ts in mainlist
group ts by ts.PsID into grp
select new
{
Id = grp.Key,
Name = grp.First().Nominprsn
}).ToList();
答案 2 :(得分:0)
或者尝试Distinct或DistinctBy(o => o.Key.PsID)