• C# LINQ(4)


    where作为LINQ的条件关键字。

    where的右面是表达式

    表达式可以方法返回值,但是where的右面最终是一个可检测真假的表达式

    代码:

              static void Main(string[] args)
               {
                var NumArray = new[] {0,1,2,3,4,5,6,7,8,9 };
    
                var list = from i in NumArray
    
                           where IsMethod(i)
    
                           group i by i<4 into iList
    
                           from max in iList
    
                           where max<2
    
                           select max;
    
    
    
                foreach (var item in list)
                {
                    Console.Write($"{item}");                
                }
                Console.ReadKey();
            }
    
            private static bool IsMethod(int i)
            {
                return i>0&&i<4;
            }

    本代码中第一次表达式中使用了方法的返回值。

    另外where可以出现多次,几乎是不限制位置。

    但是除了select的后面或者group作为结尾的后面,因为他们的LINQ的结尾。也不能做为LINQ的起手。

    比如:

      var list = from i in NumArray
    
                           where i>0
    
                           where i<5
    
                           group i by i<4 into iList
    
                           from max in iList
    
                           where max<2
    
                           select max;

    一个复杂的条件拆分成简单的条件,虽然代码看起来很新手,但是易读性确实很高。

  • 相关阅读:
    GDOI模拟赛Round 1
    Codeforces 241B
    Codeforces 325E
    Codeforces 235E
    Codeforces 293B
    Codeforces 263E
    快速傅里叶变换FFT
    后缀自动机
    NOI2011 Day2
    NOI2014 Day2
  • 原文地址:https://www.cnblogs.com/T-ARF/p/9228925.html
Copyright © 2020-2023  润新知