LINQ基础知识:

1.限制运算符

类似SQL,LINQ也是用Where来作为限制运算符。

 (1)  一般用法

   查询3-5之间的数字

    int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };

    var lowNums =
        from num in numbers
        where num <= 5  &&  num>=3
        select num;

    Console.WriteLine("Numbers  between 3 and 5:");
    foreach (var x in lowNums) {
        Console.WriteLine(x);

(2) 带索引   

  查询数组中字符串长度小于索引值的字符串集合。

   string[] digits = { "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine" };

   var shortDigits = digits.Where((digit, index) => digit.Length < index);

   结果:"five", "six", "seven", "eight", "nine"

2.投影运算符

Select是投影运算符

(1)Select用法

    A、为数组中数字加1

    int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };

    var numsPlusOne =
        from num in numbers
        select num + 1;

    B、整数序列投影到字符串数组中
    int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };
    string[] strings = { "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine" };

    var textNums =
        from num in numbers
        select strings[num];

    结果:"five","four"..."zero"

    C、带索引

    int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };

    var numsInPlace = numbers.Select((num, index) => new {Num = num, InPlace = (num == index)});

   D、两个数组集合

   int[] numbersA = { 0, 2,};
    int[] numbersB = { 1, 3, };

    var pairs =
        from a in numbersA
        from b in numbersB
        where a < b
        select new {a, b};

     结果:0,1

              0,3

              2,3