c# – 根据多个字段或列从列表中删除重复项
发布时间:2020-12-15 18:35:11 所属栏目:百科 来源:网络整理
导读:我有一个MyClass类型的列表 public class MyClass{ public string prop1 {} public int prop2 {} public string prop3 {} public int prop4 {} public string prop5 {} public string prop6 {} ....} 此列表将具有重复项.我想查找和删除此列表中prop1,prop2
我有一个MyClass类型的列表
public class MyClass { public string prop1 {} public int prop2 {} public string prop3 {} public int prop4 {} public string prop5 {} public string prop6 {} .... } 此列表将具有重复项.我想查找和删除此列表中prop1,prop2和prop3重复的项目.如果其他属性是重复的则无关紧要 这是我尝试过的不起作用. List<MyClass> noDups = myClassList.GroupBy(d => new {d.prop1,d.prop2,d.prop3} ).Where(g => g.Count() > 1).Select(g=> g.Key); 我不想使用任何第三方工具.只有纯粹的linq. 解决方法
这将返回每个“类型”的一个项目(如一个区别)(所以如果你有A,A,B,C它将返回A,C)
List<MyClass> noDups = myClassList.GroupBy(d => new {d.prop1,d.prop3} ) .Select(d => d.First()) .ToList(); 如果你只想要没有副本的元素(所以如果你有A,C它将返回B,C): List<MyClass> noDups = myClassList.GroupBy(d => new {d.prop1,d.prop3} ) .Where(d => d.Count() == 1) .Select(d => d.First()) .ToList(); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- c# – MVC将ViewBag传递给Controller
- Electron+React+Webpack+Vscode应用桌面开发平台搭建
- 正则表达式 学习小结
- c# – 当多线程时,循环索引超出范围ArgumentOutOfRangeExce
- oracle visualbox 的Ubuntu系统 安装 ssh操作 步骤
- Swift-->UIViewController的跳转,参数传递,返回参数
- Oracle PLS-00114: 标识符 ' ' 太长
- c# – System.Web.HttpContext.Current.Cache信息
- oracle中字母A或B是否包含在字符串中
- EDB PPAS/PostgreSQL异地容灾,并实现“0数据丢失”的灾难恢