在 C# 中,我有一个具有 name 和 surname 属性的对象,并创建了这些对象的列表,List<person>
.
我想过滤此List<person>
基于姓名和姓氏,但在列表中,有些人的姓氏可能为空,因此我想仅在姓名不为空时过滤姓名,仅在姓名不为空时过滤姓氏。
我无法使用 findall 来完成此操作,因为它只接受谓词
m_cPersons.FindAll(q => q.Name != null && q.Name.ToUpper().Contains(name));
如何添加两个谓词?
最佳答案
而不是 List<T>.FindAll(...)
方法,使用 LINQ Where(Func<TSource,bool> predicate)
扩展方法:
m_cPersons.Where(q => q.Name != null && q.Name.ToUpper().Contains(name));
关于c# - 具有多个谓词的 linq findall,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25709003/