我有一个 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
?