首页 > 代码库 > Linq101-Ordering
Linq101-Ordering
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 5 namespace Linq101 6 { 7 class Ordering 8 { 9 /// <summary> 10 /// This sample uses orderby to sort a list of words alphabetically. 11 /// </summary> 12 public void Linq28() 13 { 14 string[] words = { "cherry", "apple", "blueberry" }; 15 16 var sortedWords = from w in words 17 orderby w 18 select w; 19 20 Console.WriteLine("The sorted list of words:"); 21 foreach (var word in sortedWords) 22 { 23 Console.WriteLine(word); 24 } 25 } 26 27 /// <summary> 28 /// This sample uses orderby to sort a list of words by length. 29 /// </summary> 30 public void Linq29() 31 { 32 string[] words = { "cherry", "apple", "blueberry" }; 33 34 var sortedWords = from w in words 35 orderby w.Length 36 select w; 37 38 Console.WriteLine("The sorted list of words( by length ):"); 39 foreach (var word in sortedWords) 40 { 41 Console.WriteLine(word); 42 } 43 } 44 45 /// <summary> 46 /// This sample uses orderby to sort a list of products by name. 47 /// </summary> 48 public void Linq30() 49 { 50 var products = Data.GetProductList(); 51 52 var query = from p in products 53 orderby p.ProductName 54 select p; 55 56 ObjectDumper.Write(query); 57 } 58 59 /// <summary> 60 /// This sample uses an OrderBy clause with a custom comparer to do a case-insensitive sort of the words in an array. 61 /// </summary> 62 public void Linq31() 63 { 64 string[] words = { "aPPLE", "AbAcUs", "bRaNcH", "BlUeBeRrY", "ClOvEr", "cHeRry" }; 65 66 var query = words.OrderBy(w => w, new CaseInsensitiveComparer()); 67 68 ObjectDumper.Write(query); 69 } 70 71 private class CaseInsensitiveComparer : IComparer<string> 72 { 73 public int Compare(string x, string y) 74 { 75 return string.Compare(x, y, StringComparison.InvariantCultureIgnoreCase); 76 } 77 } 78 79 /// <summary> 80 /// This sample uses orderby and descending to sort a list of doubles from highest to lowest. 81 /// </summary> 82 public void Linq32() 83 { 84 double[] doubles = { 1.7, 2.3, 1.9, 4.1, 2.9 }; 85 86 var sortedDoubles = from d in doubles 87 orderby d descending 88 select d; 89 90 ObjectDumper.Write(sortedDoubles); 91 } 92 93 /// <summary> 94 /// This sample uses orderby to sort a list of products by units in stock from highest to lowest. 95 /// </summary> 96 public void Linq33() 97 { 98 var products = Data.GetProductList(); 99 100 var query = from p in products101 orderby p.UnitsInStock descending102 select p;103 104 ObjectDumper.Write(query);105 }106 107 /// <summary>108 /// This sample uses an OrderBy clause with a custom comparer to do a case-insensitive descending sort of the words in an array.109 /// </summary>110 public void Linq34()111 {112 string[] words = { "aPPLE", "AbAcUs", "bRaNcH", "BlUeBeRrY", "ClOvEr", "cHeRry" };113 114 var query = words.OrderByDescending(w => w, new CaseInsensitiveComparer());115 116 ObjectDumper.Write(query);117 }118 119 /// <summary>120 /// This sample uses a compound orderby to sort a list of digits, first by length of their name, and then alphabetically by the name itself.121 /// </summary>122 public void Linq35()123 {124 string[] digits = { "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine" };125 126 var sortedDigits = from d in digits127 orderby d.Length, d128 select d;129 130 Console.WriteLine("Sorted digits:");131 foreach (var d in sortedDigits)132 {133 Console.WriteLine(d);134 }135 }136 137 /// <summary>138 /// This sample uses an OrderBy and a ThenBy clause with a custom comparer to sort first by word length and then by a case-insensitive sort of the words in an array.139 /// </summary>140 public void Linq36()141 {142 string[] words = { "aPPLE", "AbAcUs", "bRaNcH", "BlUeBeRrY", "ClOvEr", "cHeRry" };143 144 var sortedWords = words145 .OrderBy(w => w.Length)146 .ThenBy(w => w, new CaseInsensitiveComparer());147 148 ObjectDumper.Write(sortedWords);149 }150 151 /// <summary>152 /// This sample uses a compound orderby to sort a list of products, first by category, and then by unit price, from highest to lowest.153 /// </summary>154 public void Linq37()155 {156 var products = Data.GetProductList();157 158 var query = from p in products159 orderby p.Category, p.UnitPrice descending160 select p;161 162 ObjectDumper.Write(query);163 }164 165 /// <summary>166 /// This sample uses an OrderBy and a ThenBy clause with a custom comparer to sort first by word length and then by a case-insensitive descending sort of the words in an array.167 /// </summary>168 public void Linq38()169 {170 string[] words = { "aPPLE", "AbAcUs", "bRaNcH", "BlUeBeRrY", "ClOvEr", "cHeRry" };171 172 var sortedWords = words.OrderBy(w => w.Length).ThenByDescending(w => w, new CaseInsensitiveComparer());173 174 ObjectDumper.Write(sortedWords);175 }176 177 /// <summary>178 /// This sample uses Reverse to create a list of all digits in the array whose second letter is ‘i‘ that is reversed from the order in the original array.179 /// </summary>180 public void Linq39()181 {182 string[] digits = { "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine" };183 184 var sortedDigits = (from d in digits185 where d[1] == ‘i‘186 select d)187 .Reverse();188 189 ObjectDumper.Write(sortedDigits);190 }191 }192 }
Linq101-Ordering
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。