这个完全难倒了我。
假设我们有一个整数列表
var list = new List {
1,
2,
3,
5,
6,
7,
9,
10
};
我如何将其分组为 1-3,5-7,9-10,在缺少下一个整数的情况下拆分组?
最佳答案
看看这是否有效。没有 for 循环,只有 linq
List<int> list = new List<int> { 1, 2, 3, 5, 6, 7, 9, 10};
List<int> splitIndex = list.Skip(1).Select((x,i) => new { x = x, i = i}).Where(x => list[x.i] + 1 != x.x).Select(x => x.i).ToList();
//add last index
splitIndex.Add(list.Count - 1);
var results = splitIndex.Select((x,i) => (i == 0) ? list.Take(x + 1).ToList() : list.Skip(splitIndex[i - 1] + 1).Take(splitIndex[i] - splitIndex[i - 1]).ToList()).ToList();
关于c# - 如果缺少数字,Linq 拆分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57739843/