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