最近有一位同事问我:是否可以通过数组中的一个查询获取前五个元素和最后五个元素?
int[] someArray = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18 };
我尝试过的
int[] someArray = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18 };
var firstFiveResults = someArray.Take(5);
var lastFiveResults = someArray.Skip(someArray.Count() - 5).Take(5);
var result = firstFiveResults;
result = result.Concat(lastFiveResults);
是否可以通过一个查询获取前五个元素和最后五个元素?
您可以使用.Where
带有lambda的方法,该方法接受元素索引作为其第二个参数:
int[] someArray = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18 };
int[] newArray = someArray.Where((e, i) => i < 5 || i >= someArray.Length - 5).ToArray();
foreach (var item in newArray)
{
Console.WriteLine(item);
}
输出:
0, 1, 2, 3, 4, 14, 15, 16, 17, 18
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句