Esp*_*spo 18 .net linq linq-to-objects
我有一个List<int>和一个List<customObject>.customObject类具有ID属性.如何获取List<customObject>仅包含List<int>使用LINQ中ID属性的对象?
编辑:我接受了Konrads的回答,因为它更容易/更直观地阅读.
Kon*_*lph 16
var result = from o in objList where intList.Contains(o.ID) select o
Run Code Online (Sandbox Code Playgroud)
Rob*_*low 13
using System.Linq;
objList.Where(x => intList.Contains(x.id));
Run Code Online (Sandbox Code Playgroud)
Hen*_*ryk 10
我刚才遇到了类似的问题并使用了以下解决方案.如果您已经拥有了对象列表,则可以删除int列表中未找到的所有对象,只留下objList中的匹配项.
objList.RemoveAll(x => !intList.Contains(x.id));
Run Code Online (Sandbox Code Playgroud)
未经测试,但它会是这样的:
var matches = from o in objList
join i in intList on o.ID equals i
select o;
Run Code Online (Sandbox Code Playgroud)
@Konrad只是对它进行了测试,它确实有效 - 我只是写了一个错字,我写的是"i.ID"而不是"i".