【发布时间】:2018-11-21 09:01:47
【问题描述】:
假设我们有一个像这样的对象定义,
class MyObject {
int id;
string name;
}
我们有一个 MyObjects 列表。
List<MyObject> objectList
现在,我需要根据哪些对象具有非空名称字段,将此 objectList 划分为 2 个子列表。
因此,在操作之后,我需要有 2 个列表,objectsWithName,其中名称字段为非空,objectsWithoutName,其中名称字段为空(这是直接标准,但我更倾向于分区使用谓词分成两组)。
实现这一目标的最简单方法是什么?我可以在一次操作中做到这一点吗?允许使用 LINQ。
【问题讨论】:
-
带有if语句的for循环最简单,LINQ在这里是开销
-
@brykneval - 是什么让您认为 Linq 是开销 - 您是否将 foreach 循环生成的 IL 与 Linq 生成的 IL 进行了比较?我想你会发现它们并没有太大的不同。
标签: c# list linq ienumerable