【发布时间】:2012-05-11 02:47:09
【问题描述】:
我有一个 int 数组,它是多个相似数组的串联数组,都从 1 开始。
1、2、3、4
1、2
1、2、3
1、2
int[] list = { 1, 2, 3, 4, 1, 2, 1, 2, 3, 1, 2 };
我想要实现的是获得结果的“最后一组”,即 {1, 2}。
尝试:
int[] list = { 1, 2, 3, 4, 1, 2, 1, 2, 3, 1, 2 };
List<int> lastSet = new List<int>();
var totalSets = list.Count(x => x == 1);
int encounter = 0;
foreach (var i in list)
{
if (i == 1)
encounter += 1;
if (encounter == totalSets)
lastSet.Add(i);
}
lastSet.ToList().ForEach(x => Console.WriteLine(x));
有没有更好的方法来使用 LINQ 实现这一点,也许是SkipWhile、GroupBy、Aggregate?
【问题讨论】:
标签: c# .net linq collections