返回具有 List<t> 中不存在的项目的 List<t> [重复]
Posted
技术标签:
【中文标题】返回具有 List<t> 中不存在的项目的 List<t> [重复]【英文标题】:Return a List<t> that has items that do not exist in a List<t> [duplicate] 【发布时间】:2014-06-30 14:07:41 【问题描述】:在 C# 中,我有以下类:
public class SQLColour
public string ID get; set;
public string Code get; set;
public string Name get; set;
public string CorporateID get; set;
我有一个名为 List1 的 List<SQLColour>
和一个名为 List2 的 List<SQLColour>
。
我如何返回 List<SQLColour>
,其中的项目的 ID 存在于 List1 但不存在于 List2?
提前致谢
【问题讨论】:
这可能会有所帮助:***.com/questions/3944803/… 【参考方案1】:我通常使用以下模式,因为Enumerable.Except 不接受泛型谓词:
// Find all IDs in List2, using a HashSet to improve bounds
var idsList2 = new HashSet(List2.Select(x => x.Id));
// Select from List1 only elements which ID does not appear in List2
var onlyList1ById = List1.Where(x => !idsList2.Contains(x.Id));
HashSet 不是必需的,但它有更好的界限,因此是我的标准模式。
【讨论】:
以上是关于返回具有 List<t> 中不存在的项目的 List<t> [重复]的主要内容,如果未能解决你的问题,请参考以下文章
java 求在 listA中存在 在listB中不存在的元素