返回List包含List中不存在的项
本文关键字:List 不存在 返回 包含 | 更新日期: 2023-09-27 18:02:56
在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?
Thanks in advance
我通常使用以下模式,作为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不是必需的,但它有更好的边界,因此是我的标准模式。