zoukankan      html  css  js  c++  java
  • 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 products
    101                         orderby p.UnitsInStock descending
    102                         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 digits
    127                                orderby d.Length, d
    128                                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 = words
    145                 .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 products
    159                         orderby p.Category, p.UnitPrice descending
    160                         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 digits
    185                                 where d[1] == 'i'
    186                                 select d)
    187                                 .Reverse();
    188 
    189             ObjectDumper.Write(sortedDigits);
    190         }
    191     }
    192 }
  • 相关阅读:
    JQuery之在线引用
    SpringBoot之durid连接池配置
    VueJs之事件处理器
    VueJs之样式绑定
    VueJs之判断与循环监听
    PTA 7-8 暴力小学(二年级篇)-求出4个数字 (10分)
    PTA 7-7 交替字符倒三角形 (10分)
    PTA 7-5 阶乘和 (10分)
    PTA 7-4 哥德巴赫猜想 (10分)
    PTA 7-3 可逆素数 (15分)
  • 原文地址:https://www.cnblogs.com/David-Huang/p/4193961.html
Copyright © 2011-2022 走看看