是否可以通过布尔条件将IEnumerable分为两个,而无需两个查询?

编程入门 行业动态 更新时间:2024-10-07 12:25:58
本文介绍了是否可以通过布尔条件将IEnumerable分为两个,而无需两个查询?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我可以使用LINQ和仅一个查询/LINQ语句将IEnumerable<T>分为两个IEnumerable<T>吗?

Can I split an IEnumerable<T> into two IEnumerable<T> using LINQ and only a single query/LINQ statement?

我想避免两次遍历IEnumerable<T>.例如,是否可以合并下面的最后两个语句,使allValues仅被遍历一次?

I want to avoid iterating through the IEnumerable<T> twice. For example, is it possible to combine the last two statements below so allValues is only traversed once?

IEnumerable<MyObj> allValues = ... List<MyObj> trues = allValues.Where( val => val.SomeProp ).ToList(); List<MyObj> falses = allValues.Where( val => !val.SomeProp ).ToList();

推荐答案

您可以使用此

var groups = allValues.GroupBy(val => val.SomeProp);

要像您的示例中那样立即进行评估:

To force immediate evaluation like in your example:

var groups = allValues.GroupBy(val => val.SomeProp) .ToDictionary(g => g.Key, g => g.ToList()); List<MyObj> trues = groups[true]; List<MyObj> falses = groups[false];

更多推荐

是否可以通过布尔条件将IEnumerable分为两个,而无需两个查询?

本文发布于:2023-08-03 14:36:29,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1287712.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:两个   可以通过   布尔   条件   IEnumerable

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!