gpt4 book ai didi

c# - 根据列值-linq删除重复项

转载 作者:可可西里 更新时间:2023-11-01 08:52:27 27 4
gpt4 key购买 nike

我在员工和团队之间有多对多关系。以下 linq 语句

int[] GroupIDs = {6,7};


var result = from g in umGroups
join empGroup in umEmployeeGroups on g.GroupID equals empGroup.GroupID
where GroupIDs.Contains(g.GroupID)
select new { GrpId = g.GroupID,EmployeeID = empGroup.EmployeeID };

返回 groupid 和 employeeid。结果是

GrpId  | EmployeeID
6 | 18
6 | 20
7 | 19
7 | 20

我需要删除 employeeid 重复的行,例如employeeid= 20 的任何一行
谢谢

最佳答案

好吧,如果你不关心哪个员工被解雇了,你可以尝试这样的事情:

var result = query.GroupBy(x => x.EmployeeId)
.Select(group => group.First());

您没有指定这是在 LINQ to SQL、LINQ to Objects 还是其他东西中……我不知道它的 SQL 翻译是什么。如果您正在处理相对少量的数据,您总是可以强制这最后一点在处理中:

var result = query.AsEnumerable()
.GroupBy(x => x.EmployeeId)
.Select(group => group.First());

那时你实际上可以使用 MoreLINQ它有一个方便的 DistinctBy方法:

var result = query.AsEnumerable()
.DistinctBy(x => x.EmployeeId);

关于c# - 根据列值-linq删除重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3446442/

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