C#技术实现:不使用if语句分离并升序显示数组奇偶数值
解决方案:无IF语句实现奇偶数组升序展示
要满足需求且不使用if语句,我们可以借助LINQ的筛选与排序方法,通过布尔表达式直接区分奇偶元素,具体实现如下:
完整代码
using System; using System.Linq; // 引入LINQ命名空间 class Pol { static void Main() { Console.WriteLine("请输入数组的大小(1到10之间)"); int size = int.Parse(Console.ReadLine()); double[] a_massiv = new double[size]; for (int i = 0; i < a_massiv.Length; i++) { Console.Write($"请输入第{i}个数组元素 "); a_massiv[i] = double.Parse(Console.ReadLine()); } // 输出原始数组 Console.WriteLine("\n原始数组:"); foreach (var v in a_massiv) { Console.WriteLine(v); } // 筛选偶数并升序输出 Console.WriteLine("\n升序排列的偶数:"); foreach (var even in a_massiv.Where(x => x % 2 == 0).OrderBy(x => x)) { Console.WriteLine(even); } // 筛选奇数并升序输出 Console.WriteLine("\n升序排列的奇数:"); foreach (var odd in a_massiv.Where(x => x % 2 != 0).OrderBy(x => x)) { Console.WriteLine(odd); } } }
关键逻辑说明
- 奇偶筛选:通过
x % 2 == 0(偶数)和x % 2 != 0(奇数)的布尔表达式替代if判断,直接在Where方法中完成元素筛选 - 升序排序:使用
OrderBy(x => x)对筛选后的元素进行自然升序排列 - 无IF实现:全程未使用
if语句,完全依靠LINQ方法和布尔表达式完成需求
内容的提问来源于stack exchange,提问作者ilushk
相关产品推荐
相关产品推荐

