C#   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了c# – 从IEnumerable中的倒数第二项跳过大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_616_4@ 我有一个IEnumerable(不是List),如下面的列表:

A,B,C,D,E

使用下面的命令,我将跳过最后一项(E)

items_split.Take(items_split.Count() - 1);  //output : A,D

@R_872_6749@,我将跳过第一项(A):

items_split.Skip(1); //output : B,E

我如何跳过列表中的倒数第二项? (期望的结果是A,E)

注意:不是最后一个,而是紧接在最后一个之前.

解决方法

让我们利用items_split是List< T>的事实. – 我们可以使用COunt:

var result = items_split
  .Where((value,indeX) => index != items_split.Count() - 2);

在一般情况下(当items_split是IEnumerable< T>时,只有Count可能过于昂贵甚至是错误的,例如,如果您查询可在Count之后更改的文件):

public static IEnumerable<T> ExcludePenultimate<T>(IEnumerable<T> sourcE) {
  if (null == sourcE)
    throw new ArgumentNullException(nameof(sourcE));

  Queue<T> queue = new Queue<T>();

  foreach (var item in sourcE) {
    queue.Enqueue(item);

    if (queue.Count > 2) 
      yield return queue.Dequeue();
  }

  if (queue.Count > 2)
    yield return queue.Dequeue();

  if (queue.Count == 2)
    queue.Dequeue();

  yield return queue.Dequeue();
}

然后

var result = ExcludePenultimate(items_split);

大佬总结

以上是大佬教程为你收集整理的c# – 从IEnumerable中的倒数第二项跳过全部内容,希望文章能够帮你解决c# – 从IEnumerable中的倒数第二项跳过所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。