c# - 使用 where 获取从最后一个开始的所有其他数字

标签 c# linq

我有一个数字数组 {3, 6, 1, 5, 5, 6} 我正在尝试获取从最后一个数字开始的所有其他数字。

那么正确的结果将是 6, 5, 6 我能够让它工作的唯一方法是使用 Reverse

int[] digitList =  {3, 6, 1, 5, 5,6};
var rev = digitList.Reverse().Where((x, i) => i % 2 == 0).Reverse().ToList();
// Correct results in 6,5,6
var l = digitList.Where((x, i) => i % 2 == 0).ToList();
// Incorrect results in 3,1,5

有没有一种不用 Reverse 就可以做到这一点的方法?我如何告诉 Where() 从另一端开始?

最佳答案

如果计数是奇数,则从头开始每隔一个数字,如果是偶数,则从第二个开始每隔一个数字(或跳过第一个),这样就不需要进行反向操作。例如:

int[] digitList = { 3, 6, 1, 5, 5, 6 };

//Skip 1 if count is odd, otherwise skip zero
var skipCount = digitList.Count() % 2 == 0 ? 1 : 0;

var l = digitList
    .Skip(skipCount)
    .Where((x, i) => i % 2 == 0)
    .ToList();

关于c# - 使用 where 获取从最后一个开始的所有其他数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48185101/

相关文章:

c# - 如何判断一个内存流是否被正确填充

c# - 识别动态 LINQ 表达式中的条件数量

linq - IEnumerable 和 IQueryable 混淆

c# - LINQ 的 Count 扩展方法的 SQL 等价物并不明显

c# - 如何将参数传递给进程

c# - 从树或列表层次结构中查找对象

LinqToExcel - 需要从特定行开始

c# - Linq 将结果连接到列表

c# - 已安装 .Net 4.5 但无法在 Visual C# 中使用 ZipFile 类

c# - Pagedlist 分页链接中的 Href 属性为空