C#中如何使用LINQ获取List列表偶数位置的元素
LINQ获取集合偶数位置元素实现
针对你给出的double类型集合:
List<double> points1 = new List<double> { 10, 20, 30, 40, 50, 60, 70, 80, 90, 100 };
要单行LINQ拿到结果为20、40、60、80、100的偶数位置元素,直接用Where的带索引重载即可,代码如下:
var res = points1.Where((val, idx) => (idx + 1) % 2 == 0).ToList();
逻辑说明
- 这里使用的是
Enumerable.Where的索引重载,遍历过程中第二个参数idx是元素从0开始计数的下标 - 因为你需要的是日常从1开始计数的偶数位置(第2位、第4位……),所以给0基下标加1之后模2等于0,就能精准筛选出目标元素
- 最终返回的结果集顺序和原集合一致,完全匹配你需要的输出内容
补充:如果后续有需求要筛选0基下标为偶数的元素(对应结果10、30、50……),只需要把判断条件改为
idx % 2 == 0即可。
内容的提问来源于stack exchange,提问作者Mario
相关产品推荐
相关产品推荐

