【发布时间】:2018-08-30 17:56:01
【问题描述】:
假设我有users,即List<User>,并且User 类有Type 和Age 属性。
我想按某些条件过滤该用户列表,并根据条件对每个项目执行一些操作。让这个列表有 10 个用户,其中一些是 "complex" 类型,其中一些是 "simple"。我希望我的最终列表是年龄在 30 岁以上的用户,如果用户类型是“复杂”,则在上面做一些事情,然后将其添加到最终列表中。应该是这样的:
var users= users.Where(u => u.Age > 30
and if u.Type = "complex" ? u = doSomething(u)).ToList();
如果doSomething(u) 返回null,则跳过当前“u”以添加到列表中。
它一半是正确的代码,一半是伪代码,因为我不知道如何将if u.Type = "complex" ? u = doSomething(u) 部分放入 LINQ 表达式中。怎么办?
编辑:如果我希望最终 lsit 用户年龄 > 30 或 Type = "complex" 的用户(和 doSomething())在复杂用户上,该怎么做?
【问题讨论】:
-
所以你想要
Age > 30 OR users with Type = "complex"或Age > 30 AND users with Type = "complex"?