C#学习教程:根据列值-linq删除Duplicate分享


根据列值-linq删除Duplicate

我在员工和团队之间有很多很多关系。 遵循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方法:

上述就是C#学习教程:根据列值-linq删除Duplicate分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—猴子技术宅(www.ssfiction.com)

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

本文来自网络收集,不代表猴子技术宅立场,如涉及侵权请点击右边联系管理员删除。

如若转载,请注明出处:https://www.ssfiction.com/ckf/959796.html

发表评论

邮箱地址不会被公开。 必填项已用*标注