我想将一个列表分成两个列表,一个可以直接处理,另一个是余数,它将通过链传递给其他处理程序.
输入:
输出:
这已经存在了吗?也许是我目前没想到的Linq方法?否则,有没有人有一个很好的C#示例?
Ser*_*rvy 21
这是一个简单的方法.请注意,ToLookup急切地评估输入序列.
List<int> list = new List<int> { 1, 2, 3, 4, 5, 6 };
var lookup = list.ToLookup(num => num % 2 == 0);
IEnumerable<int> trueList = lookup[true];
IEnumerable<int> falseList = lookup[false];
Run Code Online (Sandbox Code Playgroud)
您可以使用GroupBy延迟评估输入序列,但它不是很漂亮:
var groups = list.GroupBy(num => num % 2 == 0);
IEnumerable<int> trueList = groups.Where(group => group.Key).FirstOrDefault();
IEnumerable<int> falseList = groups.Where(group => !group.Key).FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3788 次 |
| 最近记录: |