C#如何将使用LINQ Where方法的代码改写为非LINQ实现
首先你完全可以借助List实现非LINQ的过滤逻辑,两种可行方案如下:
方案1:借助List实现(逻辑最简洁)
直接遍历原数组,筛选出所有非0元素存入List后直接传给string.Join即可,和原有LINQ写法的输出效果完全一致:
Console.WriteLine("Player Hand : "); List<int> validHand = new List<int>(); foreach (int num in sClass.playerhand) { if (num != 0) { validHand.Add(num); } } Console.WriteLine("{0}", string.Join(", ", validHand)); Console.WriteLine("Bingo Numbers : "); Console.WriteLine("{0}", string.Join(", ", numbers));
方案2:不借助List,直接拼接输出
如果不想额外引入List类型,也可以直接遍历数组拼接结果字符串,推荐用StringBuilder优化性能,需要先引入命名空间using System.Text;:
Console.WriteLine("Player Hand : "); StringBuilder handSb = new StringBuilder(); foreach (int num in sClass.playerhand) { if (num != 0) { // 非第一个元素前面加逗号分隔符 if (handSb.Length > 0) { handSb.Append(", "); } handSb.Append(num); } } Console.WriteLine(handSb.ToString()); Console.WriteLine("Bingo Numbers : "); Console.WriteLine("{0}", string.Join(", ", numbers));
内容的提问来源于stack exchange,提问作者Xm Par
相关产品推荐
相关产品推荐

