这完全让我难过。
假设我们有一个整数列表
var list = new List {
1,
2,
3,
5,
6,
7,
9,
10
};
Run Code Online (Sandbox Code Playgroud)
我如何将其分组为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();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
84 次 |
| 最近记录: |