如果要针对特定ID过滤对象列表,可以执行以下操作:
list.Where(r => r.Id == idToCompare);
如果我有一个要比较的ID列表而不是一个
idToCompare
怎么办?与预定义列表进行比较的语法是什么?就像是:
int[] listofIds = GetListofIds();
list.Where(r => r.Id "in listofIds");
最佳答案
如果listOfIds
是列表,则可以使用,但是List.Contains()是线性搜索,因此效率不高。
最好将要查找的ID存储在适合搜索的容器中,例如Set。
List<int> listOfIds = new List(GetListOfIds());
lists.Where(r=>listOfIds.Contains(r.Id));
关于c# - 列表中存在的Lambda表达式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3177113/