VS.2010.C#.LINQ 学习(一)-基础+分组

来源:互联网 发布:长笛演奏实用教程 淘宝 编辑:程序博客网 时间:2024/06/05 07:13

LINQ,好强大,处理缓存中的数据非常方便。

 

1.where:

public void Linq1()     {         int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };               var lowNums =             from n in numbers             where n < 5             select n;               Console.WriteLine("Numbers < 5:");         foreach (var x in lowNums)         {             Console.WriteLine(x);         }     } 


 

Result
Numbers < 5:
4
1
3
2
0

 

2.select:

public void Linq6() {     int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };       var numsPlusOne =         from n in numbers         select n + 1;       Console.WriteLine("Numbers + 1:");     foreach (var i in numsPlusOne)     {         Console.WriteLine(i);     } }

Result
Numbers + 1:
6
5
2
4
10
9
7
8
3
1

 

 

public void Linq8() {     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 n in numbers         select strings[n];       Console.WriteLine("Number strings:");     foreach (var s in textNums)     {         Console.WriteLine(s);     } }


 

Result
Number strings:
five
four
one
three
nine
eight
six
seven
two
zero

 

 

public void Linq9() {     string[] words = { "aPPLE", "BlUeBeRrY", "cHeRry" };       var upperLowerWords =         from w in words         select new { Upper = w.ToUpper(), Lower = w.ToLower() };       foreach (var ul in upperLowerWords)     {         Console.WriteLine("Uppercase: {0}, Lowercase: {1}", ul.Upper, ul.Lower);     } }


 

Result

Uppercase: APPLE, Lowercase: apple
Uppercase: BLUEBERRY, Lowercase: blueberry
Uppercase: CHERRY, Lowercase: cherry

 

public void Linq12() {     int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };       var numsInPlace = numbers.Select((num, index) => new { Num = num, InPlace = (num == index) });       Console.WriteLine("Number: In-place?");     foreach (var n in numsInPlace)     {         Console.WriteLine("{0}: {1}", n.Num, n.InPlace);     } }


 

Result

Number: In-place?
5: False
4: False
1: False
3: True
9: False
8: False
6: True
7: True
2: False
0: False

 

public void Linq14() {     int[] numbersA = { 0, 2, 4, 5, 6, 8, 9 };     int[] numbersB = { 1, 3, 5, 7, 8 };       var pairs =         from a in numbersA         from b in numbersB         where a < b         select new { a, b };       Console.WriteLine("Pairs where a < b:");     foreach (var pair in pairs)     {         Console.WriteLine("{0} is less than {1}", pair.a, pair.b);     } }


 

Result

Pairs where a < b:
0 is less than 1
0 is less than 3
0 is less than 5
0 is less than 7
0 is less than 8
2 is less than 3
2 is less than 5
2 is less than 7
2 is less than 8
4 is less than 5
4 is less than 7
4 is less than 8
5 is less than 7
5 is less than 8
6 is less than 7
6 is less than 8

 

3.group by :

//以n%5余数进行分组,g.Key是n%5的值,g是这个组中分配的numbers成员

    public void Linq40()     {         int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };               var numberGroups =             from n in numbers             group n by n % 5 into g             select new { Remainder = g.Key, Numbers = g };               foreach (var g in numberGroups)         {             Console.WriteLine("Numbers with a remainder of {0} when divided by 5:", g.Remainder);             foreach (var n in g.Numbers)             {                 Console.WriteLine(n);             }         }     }


Result

Numbers with a remainder of 0 when divided by 5:
5
0
Numbers with a remainder of 4 when divided by 5:
4
9
Numbers with a remainder of 1 when divided by 5:
1
6
Numbers with a remainder of 3 when divided by 5:
3
8
Numbers with a remainder of 2 when divided by 5:
7
2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

原创粉丝点击