如何在C#中使用LINQ获取数组中的前10个奇数?
如何用单条LINQ查询获取数组前10个奇数
你可以通过LINQ的Take(10)方法,直接在查询中筛选并获取前10个奇数,无需额外的循环计数逻辑,一条语句就能完成需求。
两种实现方式:
- 查询表达式写法(合并为单条语句):
var top10Odds = (from y in Arr1 where y % 2 == 1 select y).Take(10);
- 方法链写法(更简洁,也是LINQ常用风格):
var top10Odds = Arr1.Where(y => y % 2 == 1).Take(10);
完整代码示例:
int[] Arr1 = { 2, 3, 4, 5, 6, 10, 1, 12, 11, 34, 221, 33, 13, 55, 123, 44, 222, 232, 45, 656, 67, 56, 445, 456 }; // 单条LINQ查询获取前10个奇数 var top10Odds = Arr1.Where(y => y % 2 == 1).Take(10); // 输出结果 foreach (var item in top10Odds) { Console.WriteLine(item); }
说明:
Take(10)会在枚举到第10个符合条件的奇数后立即停止遍历原数组,相比你原来的循环计数方式,这种写法不仅更简洁,还能避免不必要的数组遍历,性能更优。
内容的提问来源于stack exchange,提问作者Akansha Agrawal
相关产品推荐
相关产品推荐

