Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一些数据需要根据某些条件进行分区,即:
var trues = from item in items where MyCondition(item, blah) select item; var falses = from item in items where !MyCondition(item, blah) select item;
有没有一种更简洁的方法可以在单个查询中执行此操作并返回两个结果,这样我就不必像上面那样重复自己(并最终迭代数据两次)?
如果您不想对数据进行两次迭代,则必须创建一个 LINQ 查询,其中包含真值和假值以及它们所属的组的指示符。
您可以使用以下方法执行此操作ToLookup:
ToLookup
var combined = items.ToLookup(x => MyCondition(x, blah)); var trues = combined[true]; var falses = combined[false];