<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://nfex.ru/index.php?action=history&amp;feed=atom&amp;title=Csharp%2FCSharp_Tutorial%2FLINQ%2FOrderBy</id>
		<title>Csharp/CSharp Tutorial/LINQ/OrderBy - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://nfex.ru/index.php?action=history&amp;feed=atom&amp;title=Csharp%2FCSharp_Tutorial%2FLINQ%2FOrderBy"/>
		<link rel="alternate" type="text/html" href="http://nfex.ru/index.php?title=Csharp/CSharp_Tutorial/LINQ/OrderBy&amp;action=history"/>
		<updated>2026-04-30T01:05:00Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://nfex.ru/index.php?title=Csharp/CSharp_Tutorial/LINQ/OrderBy&amp;diff=6114&amp;oldid=prev</id>
		<title> в 15:31, 26 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://nfex.ru/index.php?title=Csharp/CSharp_Tutorial/LINQ/OrderBy&amp;diff=6114&amp;oldid=prev"/>
				<updated>2010-05-26T15:31:53Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 15:31, 26 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://nfex.ru/index.php?title=Csharp/CSharp_Tutorial/LINQ/OrderBy&amp;diff=6115&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://nfex.ru/index.php?title=Csharp/CSharp_Tutorial/LINQ/OrderBy&amp;diff=6115&amp;oldid=prev"/>
				<updated>2010-05-26T12:18:16Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==An array of string values sorted first by length, then sorted alphabetically, using a case-insentive comparison.==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;using System;&lt;br /&gt;
using System.Collections.Generic;&lt;br /&gt;
using System.Linq;&lt;br /&gt;
using System.Text;&lt;br /&gt;
public class CaseInsensitiveComparer : IComparer&amp;lt;string&amp;gt; {&lt;br /&gt;
    public int Compare(string x, string y) {&lt;br /&gt;
        return string.rupare(x, y, true);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
public class MainClass {&lt;br /&gt;
    public static void Main() {&lt;br /&gt;
        string[] words = { &amp;quot;a&amp;quot;, &amp;quot;A&amp;quot;, &amp;quot;b&amp;quot;, &amp;quot;B&amp;quot;, &amp;quot;C&amp;quot;, &amp;quot;c&amp;quot; };&lt;br /&gt;
        var sortedWords =&lt;br /&gt;
            words.OrderBy(a =&amp;gt; a.Length)&lt;br /&gt;
                    .ThenBy(a =&amp;gt; a, new CaseInsensitiveComparer());&lt;br /&gt;
        Console.Write(sortedWords);&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==First OrderBy Prototype==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;using System;&lt;br /&gt;
using System.Linq;&lt;br /&gt;
using System.Collections;&lt;br /&gt;
using System.Collections.Generic;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
    public static void Main() {&lt;br /&gt;
        string[] presidents = {&amp;quot;ant&amp;quot;, &amp;quot;arding&amp;quot;, &amp;quot;arrison&amp;quot;, &amp;quot;eyes&amp;quot;, &amp;quot;over&amp;quot;, &amp;quot;ackson&amp;quot;};&lt;br /&gt;
        IEnumerable&amp;lt;string&amp;gt; items = presidents.OrderBy(s =&amp;gt; s.Length);&lt;br /&gt;
        foreach (string item in items)&lt;br /&gt;
            Console.WriteLine(item);&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Icecreams with Least Price==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;using System;&lt;br /&gt;
using System.Collections.Generic;&lt;br /&gt;
using System.Linq;&lt;br /&gt;
using System.Text;&lt;br /&gt;
using System.Linq.Expressions;&lt;br /&gt;
using System.Xml.Linq;&lt;br /&gt;
    class Program&lt;br /&gt;
    {&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            List&amp;lt;Icecream&amp;gt; icecreamsList3 = new List&amp;lt;Icecream&amp;gt;{&lt;br /&gt;
                    new Icecream(&amp;quot;A&amp;quot;, 10.5),&lt;br /&gt;
                    new Icecream(&amp;quot;B&amp;quot;, 9.80 ),&lt;br /&gt;
                    new Icecream(&amp;quot;C&amp;quot;, 7.5)&lt;br /&gt;
                    &lt;br /&gt;
            };&lt;br /&gt;
            var icecreamswithLeastPrice =from Ice in icecreamsList3 where Ice.price &amp;lt;= 10 select new { Ice.name, Ice.price };&lt;br /&gt;
            foreach (var ice in icecreamswithLeastPrice)&lt;br /&gt;
            {&lt;br /&gt;
                Console.WriteLine(ice.name + &amp;quot; &amp;quot; + ice.price);&lt;br /&gt;
            }&lt;br /&gt;
            var count = icecreamsList3.Count&amp;lt;Icecream&amp;gt;(Ice =&amp;gt; Ice.price &amp;lt;= 10);&lt;br /&gt;
            Console.WriteLine(count);&lt;br /&gt;
        }&lt;br /&gt;
      &lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public class Icecream&lt;br /&gt;
    {&lt;br /&gt;
        public string name;&lt;br /&gt;
        public double price;&lt;br /&gt;
        public Icecream(string name, double price)&lt;br /&gt;
        {&lt;br /&gt;
            this.name = name;&lt;br /&gt;
            this.price = price;&lt;br /&gt;
        }&lt;br /&gt;
    }&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Multi Level Ordering==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;using System;&lt;br /&gt;
using System.Collections.Generic;&lt;br /&gt;
using System.Linq;&lt;br /&gt;
using System.Text;&lt;br /&gt;
    class Customer&lt;br /&gt;
    {&lt;br /&gt;
        public string ID { get; set; }&lt;br /&gt;
        public string City { get; set; }&lt;br /&gt;
        public string Country { get; set; }&lt;br /&gt;
        public string Region { get; set; }&lt;br /&gt;
        public decimal Sales { get; set; }&lt;br /&gt;
    }&lt;br /&gt;
    class Program&lt;br /&gt;
    {&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            List&amp;lt;Customer&amp;gt; customers = new List&amp;lt;Customer&amp;gt; {&lt;br /&gt;
              new Customer { ID=&amp;quot;Q&amp;quot;, City=&amp;quot;London&amp;quot;, Country=&amp;quot;UK&amp;quot;, Region=&amp;quot;Europe&amp;quot;, Sales=8000 },&lt;br /&gt;
              new Customer { ID=&amp;quot;R&amp;quot;, City=&amp;quot;Beijing&amp;quot;, Country=&amp;quot;China&amp;quot;, Region=&amp;quot;Asia&amp;quot;, Sales=9000 },&lt;br /&gt;
              new Customer { ID=&amp;quot;T&amp;quot;, City=&amp;quot;Lima&amp;quot;, Country=&amp;quot;Peru&amp;quot;, Region=&amp;quot;South America&amp;quot;, Sales=2002 }&lt;br /&gt;
           };&lt;br /&gt;
            var queryResults =&lt;br /&gt;
                from c in customers&lt;br /&gt;
                orderby c.Region, c.Country descending, c.City&lt;br /&gt;
                select new { c.ID, c.Region, c.Country, c.City }&lt;br /&gt;
               ;&lt;br /&gt;
            foreach (var item in queryResults)&lt;br /&gt;
            {&lt;br /&gt;
                Console.WriteLine(item);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Not in Top Five Customers by Sales==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;using System;&lt;br /&gt;
using System.Collections.Generic;&lt;br /&gt;
using System.Linq;&lt;br /&gt;
using System.Text;&lt;br /&gt;
&lt;br /&gt;
    class Customer&lt;br /&gt;
    {&lt;br /&gt;
        public string ID { get; set; }&lt;br /&gt;
        public string City { get; set; }&lt;br /&gt;
        public string Country { get; set; }&lt;br /&gt;
        public string Region { get; set; }&lt;br /&gt;
        public decimal Sales { get; set; }&lt;br /&gt;
    }&lt;br /&gt;
    class Program&lt;br /&gt;
    {&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            List&amp;lt;Customer&amp;gt; customers = new List&amp;lt;Customer&amp;gt; {&lt;br /&gt;
              new Customer { ID=&amp;quot;N&amp;quot;, City=&amp;quot;Los Angeles&amp;quot;, Country=&amp;quot;USA&amp;quot;, Region=&amp;quot;North America&amp;quot;, Sales=5000 },&lt;br /&gt;
              new Customer { ID=&amp;quot;O&amp;quot;, City=&amp;quot;Cairo&amp;quot;, Country=&amp;quot;Egypt&amp;quot;, Region=&amp;quot;Africa&amp;quot;, Sales=6000 },&lt;br /&gt;
              new Customer { ID=&amp;quot;R&amp;quot;, City=&amp;quot;Beijing&amp;quot;, Country=&amp;quot;China&amp;quot;, Region=&amp;quot;Asia&amp;quot;, Sales=9000 },&lt;br /&gt;
              new Customer { ID=&amp;quot;T&amp;quot;, City=&amp;quot;Lima&amp;quot;, Country=&amp;quot;Peru&amp;quot;, Region=&amp;quot;South America&amp;quot;, Sales=2002 }&lt;br /&gt;
           };&lt;br /&gt;
            var queryResults =&lt;br /&gt;
                from c in customers&lt;br /&gt;
                orderby c.Sales descending&lt;br /&gt;
                select new { c.ID, c.City, c.Country, c.Sales }&lt;br /&gt;
               ;&lt;br /&gt;
            Console.WriteLine(&amp;quot;Customers Not In Top Five&amp;quot;);&lt;br /&gt;
            foreach (var item in queryResults.Skip(5))&lt;br /&gt;
            {&lt;br /&gt;
                Console.WriteLine(item);&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
    }&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Order by descending==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;using System;&lt;br /&gt;
using System.Collections.Generic;&lt;br /&gt;
using System.Linq;&lt;br /&gt;
using System.Text;&lt;br /&gt;
    class Employee&lt;br /&gt;
    {&lt;br /&gt;
        public string Name { get; set; }&lt;br /&gt;
        public decimal Salary { get; set; }&lt;br /&gt;
    }&lt;br /&gt;
    class Department&lt;br /&gt;
    {&lt;br /&gt;
        public string Name { get; set; }&lt;br /&gt;
        List&amp;lt;Employee&amp;gt; employees = new List&amp;lt;Employee&amp;gt;();&lt;br /&gt;
        public IList&amp;lt;Employee&amp;gt; Employees&lt;br /&gt;
        {&lt;br /&gt;
            get { return employees; }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    class Company&lt;br /&gt;
    {&lt;br /&gt;
        public string Name { get; set; }&lt;br /&gt;
        List&amp;lt;Department&amp;gt; departments = new List&amp;lt;Department&amp;gt;();&lt;br /&gt;
        public IList&amp;lt;Department&amp;gt; Departments&lt;br /&gt;
        {&lt;br /&gt;
            get { return departments; }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    class SalaryReport&lt;br /&gt;
    {&lt;br /&gt;
        static void Main()&lt;br /&gt;
        {&lt;br /&gt;
            var company = new Company&lt;br /&gt;
            {&lt;br /&gt;
                Name = &amp;quot;A&amp;quot;,&lt;br /&gt;
                Departments =&lt;br /&gt;
                {&lt;br /&gt;
                    new Department &lt;br /&gt;
                    { &lt;br /&gt;
                        Name = &amp;quot;Development&amp;quot;, &lt;br /&gt;
                        Employees = &lt;br /&gt;
                        {&lt;br /&gt;
                            new Employee { Name = &amp;quot;T&amp;quot;, Salary = 75000m },&lt;br /&gt;
                            new Employee { Name = &amp;quot;D&amp;quot;, Salary = 45000m },&lt;br /&gt;
                            new Employee { Name = &amp;quot;M&amp;quot;, Salary = 150000m }&lt;br /&gt;
                        }&lt;br /&gt;
                    },&lt;br /&gt;
                    new Department &lt;br /&gt;
                    { &lt;br /&gt;
                        Name = &amp;quot;Marketing&amp;quot;, &lt;br /&gt;
                        Employees = &lt;br /&gt;
                        {&lt;br /&gt;
                            new Employee { Name = &amp;quot;Z&amp;quot;, Salary = 200000m },&lt;br /&gt;
                            new Employee { Name = &amp;quot;X&amp;quot;, Salary = 120000m }&lt;br /&gt;
                        }&lt;br /&gt;
                    }&lt;br /&gt;
                }&lt;br /&gt;
            };&lt;br /&gt;
            var query = company.Departments&lt;br /&gt;
                               .Select(dept =&amp;gt; new { dept.Name, Cost = dept.Employees.Sum(person =&amp;gt; person.Salary) })&lt;br /&gt;
                               .OrderByDescending(deptWithCost =&amp;gt; deptWithCost.Cost);&lt;br /&gt;
            foreach (var item in query)&lt;br /&gt;
            {&lt;br /&gt;
                Console.WriteLine(item);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==OrderBy: prints an alphabetically sorted version of a string array==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;using System;&lt;br /&gt;
using System.Collections.Generic;&lt;br /&gt;
using System.Linq;&lt;br /&gt;
using System.Text;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
    public static void Main() {&lt;br /&gt;
        string[] words = { &amp;quot;C&amp;quot;, &amp;quot;a&amp;quot;, &amp;quot;b&amp;quot; };&lt;br /&gt;
        var sortedWords =&lt;br /&gt;
            from w in words&lt;br /&gt;
            orderby w&lt;br /&gt;
            select w;&lt;br /&gt;
        Console.WriteLine(&amp;quot;The sorted list of words:&amp;quot;);&lt;br /&gt;
        foreach (var w in sortedWords) {&lt;br /&gt;
            Console.WriteLine(w);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==OrderBy with customized Comparer==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;using System;&lt;br /&gt;
using System.Collections.Generic;&lt;br /&gt;
using System.Linq;&lt;br /&gt;
using System.Text;&lt;br /&gt;
public class CaseInsensitiveComparer : IComparer&amp;lt;string&amp;gt; {&lt;br /&gt;
    public int Compare(string x, string y) {&lt;br /&gt;
        return string.rupare(x, y, true);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
public class MainClass {&lt;br /&gt;
    public static void Main() {&lt;br /&gt;
        string[] words = { &amp;quot;a&amp;quot;, &amp;quot;A&amp;quot;, &amp;quot;b&amp;quot;, &amp;quot;B&amp;quot;, &amp;quot;C&amp;quot;, &amp;quot;c&amp;quot; };&lt;br /&gt;
        var sortedWords = words.OrderBy(a =&amp;gt; a, new CaseInsensitiveComparer());&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==OrderBy with passing a lambda function==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;using System;&lt;br /&gt;
using System.Collections.Generic;&lt;br /&gt;
using System.Linq;&lt;br /&gt;
using System.Text;&lt;br /&gt;
public class CaseInsensitiveComparer : IComparer&amp;lt;string&amp;gt; {&lt;br /&gt;
    public int Compare(string x, string y) {&lt;br /&gt;
        return string.rupare(x, y, true);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
public class MainClass {&lt;br /&gt;
    public static void Main() {&lt;br /&gt;
        string[] words = { &amp;quot;a&amp;quot;, &amp;quot;A&amp;quot;, &amp;quot;b&amp;quot;, &amp;quot;B&amp;quot;, &amp;quot;C&amp;quot;, &amp;quot;c&amp;quot; };&lt;br /&gt;
        var sortedWords = words.OrderBy(a =&amp;gt; a, new CaseInsensitiveComparer());&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Ordered by PetName==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;using System;&lt;br /&gt;
using System.Collections.Generic;&lt;br /&gt;
using System.Text;&lt;br /&gt;
using System.Xml.Linq;&lt;br /&gt;
using System.Linq;&lt;br /&gt;
    class Car&lt;br /&gt;
    {&lt;br /&gt;
        public string PetName;&lt;br /&gt;
        public string Color;&lt;br /&gt;
        public int Speed;&lt;br /&gt;
        public string Make;&lt;br /&gt;
        &lt;br /&gt;
        public override string ToString()&lt;br /&gt;
        {&lt;br /&gt;
            return string.Format(&amp;quot;Make={0}, Color={1}, Speed={2}, PetName={3}&amp;quot;,Make, Color, Speed, PetName);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    class Program&lt;br /&gt;
    {&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            Car[] myCars = new []{&lt;br /&gt;
                new Car{ PetName = &amp;quot;A&amp;quot;, Color = &amp;quot;Silver&amp;quot;, Speed = 100, Make = &amp;quot;BMW&amp;quot;},&lt;br /&gt;
                new Car{ PetName = &amp;quot;B&amp;quot;, Color = &amp;quot;Black&amp;quot;, Speed = 55, Make = &amp;quot;VW&amp;quot;},&lt;br /&gt;
                new Car{ PetName = &amp;quot;C&amp;quot;, Color = &amp;quot;White&amp;quot;, Speed = 43, Make = &amp;quot;Ford&amp;quot;}&lt;br /&gt;
            };&lt;br /&gt;
        &lt;br /&gt;
            var subset = from c in myCars orderby c.PetName select c;&lt;br /&gt;
            &lt;br /&gt;
            foreach (Car c in subset)&lt;br /&gt;
            {&lt;br /&gt;
                Console.WriteLine(c.ToString());&lt;br /&gt;
            }&lt;br /&gt;
        &lt;br /&gt;
        }&lt;br /&gt;
    }&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Order Method Syntax==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;using System;&lt;br /&gt;
using System.Collections.Generic;&lt;br /&gt;
using System.Linq;&lt;br /&gt;
using System.Text;&lt;br /&gt;
    class Program&lt;br /&gt;
    {&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            string[] names = {&amp;quot;Zheng&amp;quot;, &amp;quot;Smith&amp;quot; };&lt;br /&gt;
            var queryResults = names.OrderBy(n =&amp;gt; n).Where(n =&amp;gt; n.StartsWith(&amp;quot;S&amp;quot;));&lt;br /&gt;
            foreach (var item in queryResults)&lt;br /&gt;
            {&lt;br /&gt;
                Console.WriteLine(item);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Order Query Results==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;using System;&lt;br /&gt;
using System.Collections.Generic;&lt;br /&gt;
using System.Linq;&lt;br /&gt;
using System.Text;&lt;br /&gt;
    class Program&lt;br /&gt;
    {&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            string[] names = { &amp;quot;Zheng&amp;quot;, &amp;quot;Smith&amp;quot;, &amp;quot;Small&amp;quot; };&lt;br /&gt;
            var queryResults =&lt;br /&gt;
                from n in names&lt;br /&gt;
                where n.StartsWith(&amp;quot;S&amp;quot;)&lt;br /&gt;
                orderby n&lt;br /&gt;
                select n;&lt;br /&gt;
            foreach (var item in queryResults)&lt;br /&gt;
            {&lt;br /&gt;
                Console.WriteLine(item);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==products sorted alphabetically by the product name==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;using System;&lt;br /&gt;
using System.Collections.Generic;&lt;br /&gt;
using System.Linq;&lt;br /&gt;
using System.Text;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
    public static void Main() {&lt;br /&gt;
        List&amp;lt;Product&amp;gt; products = GetProductList();&lt;br /&gt;
        var sortedProducts =&lt;br /&gt;
            from p in products&lt;br /&gt;
            orderby p.ProductName&lt;br /&gt;
            select p;&lt;br /&gt;
        Console.WriteLine(sortedProducts);&lt;br /&gt;
    }&lt;br /&gt;
    static List&amp;lt;Product&amp;gt; GetProductList() {&lt;br /&gt;
        List&amp;lt;Product&amp;gt; empTree = new List&amp;lt;Product&amp;gt;();&lt;br /&gt;
        empTree.Add(new Product { ProductName = &amp;quot;A&amp;quot;, Category = &amp;quot;O&amp;quot;, UnitPrice = 12, UnitsInStock = 5, Total = 36, OrderDate = new DateTime(2005, 1, 1), Id = 1 });&lt;br /&gt;
        empTree.Add(new Product { ProductName = &amp;quot;B&amp;quot;, Category = &amp;quot;O&amp;quot;, UnitPrice = 2, UnitsInStock = 4, Total = 35, OrderDate = new DateTime(2005, 1, 1), Id = 1 });&lt;br /&gt;
        empTree.Add(new Product { ProductName = &amp;quot;C&amp;quot;, Category = &amp;quot;O&amp;quot;, UnitPrice = 112, UnitsInStock = 3, Total = 34, OrderDate = new DateTime(2005, 1, 1), Id = 1 });&lt;br /&gt;
        empTree.Add(new Product { ProductName = &amp;quot;D&amp;quot;, Category = &amp;quot;O&amp;quot;, UnitPrice = 112, UnitsInStock = 0, Total = 33, OrderDate = new DateTime(2005, 1, 1), Id = 1 });&lt;br /&gt;
        empTree.Add(new Product { ProductName = &amp;quot;E&amp;quot;, Category = &amp;quot;O&amp;quot;, UnitPrice = 1112, UnitsInStock = 2, Total = 32, OrderDate = new DateTime(2005, 1, 1), Id = 1 });&lt;br /&gt;
        empTree.Add(new Product { ProductName = &amp;quot;F&amp;quot;, Category = &amp;quot;O&amp;quot;, UnitPrice = 11112, UnitsInStock = 0, Total = 31, OrderDate = new DateTime(2005, 1, 1), Id = 1 });&lt;br /&gt;
        return empTree;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
class Product : IComparable&amp;lt;Product&amp;gt; {&lt;br /&gt;
    public string ProductName { get; set; }&lt;br /&gt;
    public string Category { get; set; }&lt;br /&gt;
    public int UnitPrice { get; set; }&lt;br /&gt;
    public int UnitsInStock { get; set; }&lt;br /&gt;
    public int Total { get; set; }&lt;br /&gt;
    public DateTime OrderDate { get; set; }&lt;br /&gt;
    public int Id { get; set; }&lt;br /&gt;
    public override string ToString() {&lt;br /&gt;
        return String.Format(&amp;quot;Id: {0}, Name: {1} , Category: {3}&amp;quot;, this.Id, this.ProductName, this.Category);&lt;br /&gt;
    }&lt;br /&gt;
    int IComparable&amp;lt;Product&amp;gt;.rupareTo(Product other) {&lt;br /&gt;
        if (other == null)&lt;br /&gt;
            return 1;&lt;br /&gt;
        if (this.Id &amp;gt; other.Id)&lt;br /&gt;
            return 1;&lt;br /&gt;
        if (this.Id &amp;lt; other.Id)&lt;br /&gt;
            return -1;&lt;br /&gt;
        return 0;&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==products sorted by the number of units of each product that are in stock==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;using System;&lt;br /&gt;
using System.Collections.Generic;&lt;br /&gt;
using System.Linq;&lt;br /&gt;
using System.Text;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
    public static void Main() {&lt;br /&gt;
        List&amp;lt;Product&amp;gt; products = GetProductList();&lt;br /&gt;
        var sortedProducts =&lt;br /&gt;
            from p in products&lt;br /&gt;
            orderby p.UnitsInStock descending&lt;br /&gt;
            select p;&lt;br /&gt;
        Console.Write(sortedProducts);&lt;br /&gt;
    }&lt;br /&gt;
    static List&amp;lt;Product&amp;gt; GetProductList() {&lt;br /&gt;
        List&amp;lt;Product&amp;gt; empTree = new List&amp;lt;Product&amp;gt;();&lt;br /&gt;
        empTree.Add(new Product { ProductName = &amp;quot;A&amp;quot;, Category = &amp;quot;O&amp;quot;, UnitPrice = 12, UnitsInStock = 5, Total = 36, OrderDate = new DateTime(2005, 1, 1), Id = 1 });&lt;br /&gt;
        empTree.Add(new Product { ProductName = &amp;quot;B&amp;quot;, Category = &amp;quot;O&amp;quot;, UnitPrice = 2, UnitsInStock = 4, Total = 35, OrderDate = new DateTime(2005, 1, 1), Id = 1 });&lt;br /&gt;
        empTree.Add(new Product { ProductName = &amp;quot;C&amp;quot;, Category = &amp;quot;O&amp;quot;, UnitPrice = 112, UnitsInStock = 3, Total = 34, OrderDate = new DateTime(2005, 1, 1), Id = 1 });&lt;br /&gt;
        empTree.Add(new Product { ProductName = &amp;quot;D&amp;quot;, Category = &amp;quot;O&amp;quot;, UnitPrice = 112, UnitsInStock = 0, Total = 33, OrderDate = new DateTime(2005, 1, 1), Id = 1 });&lt;br /&gt;
        empTree.Add(new Product { ProductName = &amp;quot;E&amp;quot;, Category = &amp;quot;O&amp;quot;, UnitPrice = 1112, UnitsInStock = 2, Total = 32, OrderDate = new DateTime(2005, 1, 1), Id = 1 });&lt;br /&gt;
        empTree.Add(new Product { ProductName = &amp;quot;F&amp;quot;, Category = &amp;quot;O&amp;quot;, UnitPrice = 11112, UnitsInStock = 0, Total = 31, OrderDate = new DateTime(2005, 1, 1), Id = 1 });&lt;br /&gt;
        return empTree;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
class Product : IComparable&amp;lt;Product&amp;gt; {&lt;br /&gt;
    public string ProductName { get; set; }&lt;br /&gt;
    public string Category { get; set; }&lt;br /&gt;
    public int UnitPrice { get; set; }&lt;br /&gt;
    public int UnitsInStock { get; set; }&lt;br /&gt;
    public int Total { get; set; }&lt;br /&gt;
    public DateTime OrderDate { get; set; }&lt;br /&gt;
    public int Id { get; set; }&lt;br /&gt;
    public override string ToString() {&lt;br /&gt;
        return String.Format(&amp;quot;Id: {0}, Name: {1} , Category: {3}&amp;quot;, this.Id, this.ProductName, this.Category);&lt;br /&gt;
    }&lt;br /&gt;
    int IComparable&amp;lt;Product&amp;gt;.rupareTo(Product other) {&lt;br /&gt;
        if (other == null)&lt;br /&gt;
            return 1;&lt;br /&gt;
        if (this.Id &amp;gt; other.Id)&lt;br /&gt;
            return 1;&lt;br /&gt;
        if (this.Id &amp;lt; other.Id)&lt;br /&gt;
            return -1;&lt;br /&gt;
        return 0;&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==sorted alphabetically in descending order, using a case insensitive comparision.==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;using System;&lt;br /&gt;
using System.Collections.Generic;&lt;br /&gt;
using System.Linq;&lt;br /&gt;
using System.Text;&lt;br /&gt;
public class CaseInsensitiveComparer : IComparer&amp;lt;string&amp;gt; {&lt;br /&gt;
    public int Compare(string x, string y) {&lt;br /&gt;
        return string.rupare(x, y, true);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
public class MainClass {&lt;br /&gt;
    public static void Main() {&lt;br /&gt;
        string[] words = { &amp;quot;a&amp;quot;, &amp;quot;A&amp;quot;, &amp;quot;b&amp;quot;, &amp;quot;B&amp;quot;, &amp;quot;C&amp;quot;, &amp;quot;c&amp;quot; };&lt;br /&gt;
        var sortedWords = words.OrderByDescending(a =&amp;gt; a, new CaseInsensitiveComparer());&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sorted join query==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;using System;&lt;br /&gt;
using System.Collections.Generic;&lt;br /&gt;
using System.Linq;&lt;br /&gt;
using System.Text;&lt;br /&gt;
    public class Customer&lt;br /&gt;
    {&lt;br /&gt;
        public string FirstName    { get; set; }&lt;br /&gt;
        public string LastName     { get; set; }&lt;br /&gt;
        public string EmailAddress { get; set; }&lt;br /&gt;
        public override string ToString(){&lt;br /&gt;
            return string.Format(&amp;quot;{0} {1}\nEmail:   {2}&amp;quot;,FirstName, LastName, EmailAddress);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    public class Address&lt;br /&gt;
    {&lt;br /&gt;
        public string Name   { get; set; }&lt;br /&gt;
        public string Street { get; set; }&lt;br /&gt;
        public string City   { get; set; }&lt;br /&gt;
        public override string ToString()&lt;br /&gt;
        {&lt;br /&gt;
            return string.Format(&amp;quot;{0}, {1}&amp;quot;, Street, City);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    public class CustomerAddress&lt;br /&gt;
    {&lt;br /&gt;
        public Customer Customer { get; set; }&lt;br /&gt;
        public Address Address { get; set; }&lt;br /&gt;
    }&lt;br /&gt;
    public class Tester&lt;br /&gt;
    {&lt;br /&gt;
        static void Main()&lt;br /&gt;
        {&lt;br /&gt;
            List&amp;lt;Customer&amp;gt; customers = new List&amp;lt;Customer&amp;gt;&lt;br /&gt;
                {&lt;br /&gt;
                    new Customer { FirstName = &amp;quot;A&amp;quot;, &lt;br /&gt;
                                    LastName = &amp;quot;B&amp;quot;,&lt;br /&gt;
                                    EmailAddress = &amp;quot;o@a.ru&amp;quot;},&lt;br /&gt;
                    new Customer { FirstName = &amp;quot;B&amp;quot;, &lt;br /&gt;
                                    LastName = &amp;quot;C&amp;quot;,&lt;br /&gt;
                                    EmailAddress = &amp;quot;k@a.ru&amp;quot; },&lt;br /&gt;
                    new Customer { FirstName = &amp;quot;D&amp;quot;, &lt;br /&gt;
                                    LastName = &amp;quot;C&amp;quot;,&lt;br /&gt;
                                    EmailAddress = &amp;quot;d@a.ru&amp;quot; },&lt;br /&gt;
                    new Customer { FirstName = &amp;quot;F&amp;quot;, &lt;br /&gt;
                                    LastName = &amp;quot;G&amp;quot;,&lt;br /&gt;
                                    EmailAddress = &amp;quot;j@a.ru&amp;quot; },&lt;br /&gt;
                    new Customer { FirstName = &amp;quot;L&amp;quot;, &lt;br /&gt;
                                    LastName = &amp;quot;H&amp;quot;,&lt;br /&gt;
                                    EmailAddress = &amp;quot;l@a.ru&amp;quot; }&lt;br /&gt;
                };&lt;br /&gt;
            List&amp;lt;Address&amp;gt; addresses = new List&amp;lt;Address&amp;gt;&lt;br /&gt;
                {&lt;br /&gt;
                    new Address { Name   = &amp;quot;J&amp;quot;,&lt;br /&gt;
                                  Street = &amp;quot;165 Main&amp;quot;, &lt;br /&gt;
                                    City = &amp;quot;City 1&amp;quot; },&lt;br /&gt;
                    new Address { Name   = &amp;quot;K H&amp;quot;,&lt;br /&gt;
                                  Street = &amp;quot;3207 Way&amp;quot;, &lt;br /&gt;
                                    City = &amp;quot;Cith 2&amp;quot; },&lt;br /&gt;
                    new Address { Name   = &amp;quot;J G&amp;quot;,&lt;br /&gt;
                                  Street = &amp;quot;800 Blvd.&amp;quot;, &lt;br /&gt;
                                    City = &amp;quot;City 3&amp;quot; },&lt;br /&gt;
                    new Address { Name   = &amp;quot;Mary&amp;quot;,&lt;br /&gt;
                                  Street = &amp;quot;7 Ave&amp;quot;, &lt;br /&gt;
                                    City = &amp;quot;City 4&amp;quot; },&lt;br /&gt;
                    new Address { Name   = &amp;quot;Kate&amp;quot;,&lt;br /&gt;
                                  Street = &amp;quot;2251 Avenue&amp;quot;, &lt;br /&gt;
                                    City = &amp;quot;City 5&amp;quot; }&lt;br /&gt;
                };&lt;br /&gt;
            var result = from customer in customers&lt;br /&gt;
                join address in addresses on&lt;br /&gt;
                     string.Format(&amp;quot;{0} {1}&amp;quot;, customer.FirstName, customer.LastName) &lt;br /&gt;
                     equals address.Name&lt;br /&gt;
                orderby customer.LastName, address.Street descending  &lt;br /&gt;
                select new { Customer = customer, Address = address };&lt;br /&gt;
            foreach (var ca in result)&lt;br /&gt;
            {&lt;br /&gt;
                Console.WriteLine(string.Format(&amp;quot;{0}\nAddress: {1}&amp;quot;,&lt;br /&gt;
                    ca.Customer, ca.Address));&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sorting strings in a file==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;using System;&lt;br /&gt;
using System.IO;&lt;br /&gt;
using System.Collections.Generic;&lt;br /&gt;
using System.Linq;&lt;br /&gt;
using System.Text;&lt;br /&gt;
using System.Linq.Expressions;&lt;br /&gt;
using System.Xml.Linq;&lt;br /&gt;
    class Program&lt;br /&gt;
    {&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            List&amp;lt;string&amp;gt; strs = new List&amp;lt;string&amp;gt;();&lt;br /&gt;
            using( StreamReader sReader = new StreamReader(&amp;quot;data.txt&amp;quot;))&lt;br /&gt;
            {&lt;br /&gt;
              string str;&lt;br /&gt;
              str = sReader.ReadLine();&lt;br /&gt;
              while (str != null)&lt;br /&gt;
              {&lt;br /&gt;
                strs.Add(str);&lt;br /&gt;
              }&lt;br /&gt;
            }&lt;br /&gt;
            IEnumerable&amp;lt;string&amp;gt; i = from name in strs orderby name descending select name;&lt;br /&gt;
            foreach (string nam in i)&lt;br /&gt;
            {&lt;br /&gt;
              Console.WriteLine(nam);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sort object by its property==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;using System;&lt;br /&gt;
using System.Collections.Generic;&lt;br /&gt;
using System.ruponentModel;&lt;br /&gt;
        class Film&lt;br /&gt;
        {&lt;br /&gt;
            public string Name { get; set; }&lt;br /&gt;
            public int Year { get; set; }&lt;br /&gt;
            public override string ToString()&lt;br /&gt;
            {&lt;br /&gt;
                return string.Format(&amp;quot;Name={0}, Year={1}&amp;quot;, Name, Year);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    class MainClass&lt;br /&gt;
    {&lt;br /&gt;
        static void Main()&lt;br /&gt;
        {&lt;br /&gt;
            var films = new List&amp;lt;Film&amp;gt;&lt;br /&gt;
            {&lt;br /&gt;
                new Film {Name=&amp;quot;J&amp;quot;, Year=1975},&lt;br /&gt;
                new Film {Name=&amp;quot;H&amp;quot;, Year=2000},&lt;br /&gt;
                new Film {Name=&amp;quot;T&amp;quot;, Year=1995}&lt;br /&gt;
            };&lt;br /&gt;
            Action&amp;lt;Film&amp;gt; print = film =&amp;gt; Console.WriteLine(film);&lt;br /&gt;
            Console.WriteLine(&amp;quot;All films&amp;quot;);&lt;br /&gt;
            films.ForEach(print);                                &lt;br /&gt;
            Console.WriteLine();&lt;br /&gt;
            Console.WriteLine(&amp;quot;Oldies&amp;quot;);&lt;br /&gt;
            films.FindAll(film =&amp;gt; film.Year &amp;lt; 1980).ForEach(print);&lt;br /&gt;
            Console.WriteLine();&lt;br /&gt;
            Console.WriteLine(&amp;quot;Sorted&amp;quot;);&lt;br /&gt;
            films.Sort((f1, f2) =&amp;gt; f1.Name.rupareTo(f2.Name));  &lt;br /&gt;
            films.ForEach(print);                                &lt;br /&gt;
        }        &lt;br /&gt;
    }&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==string array sorted by the length each element==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;using System;&lt;br /&gt;
using System.Collections.Generic;&lt;br /&gt;
using System.Linq;&lt;br /&gt;
using System.Text;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
    public static void Main() {&lt;br /&gt;
        string[] words = { &amp;quot;abc&amp;quot;, &amp;quot;bcd&amp;quot;, &amp;quot;def&amp;quot; };&lt;br /&gt;
        var sortedWords =&lt;br /&gt;
            from w in words&lt;br /&gt;
            orderby w.Length&lt;br /&gt;
            select w;&lt;br /&gt;
        Console.WriteLine(&amp;quot;The sorted list of words (by length):&amp;quot;);&lt;br /&gt;
        foreach (var w in sortedWords) {&lt;br /&gt;
            Console.WriteLine(w);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Top Five Customers by Sales==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;using System;&lt;br /&gt;
using System.Collections.Generic;&lt;br /&gt;
using System.Linq;&lt;br /&gt;
using System.Text;&lt;br /&gt;
&lt;br /&gt;
    class Customer&lt;br /&gt;
    {&lt;br /&gt;
        public string ID { get; set; }&lt;br /&gt;
        public string City { get; set; }&lt;br /&gt;
        public string Country { get; set; }&lt;br /&gt;
        public string Region { get; set; }&lt;br /&gt;
        public decimal Sales { get; set; }&lt;br /&gt;
    }&lt;br /&gt;
    class Program&lt;br /&gt;
    {&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            List&amp;lt;Customer&amp;gt; customers = new List&amp;lt;Customer&amp;gt; {&lt;br /&gt;
              new Customer { ID=&amp;quot;N&amp;quot;, City=&amp;quot;Los Angeles&amp;quot;, Country=&amp;quot;USA&amp;quot;, Region=&amp;quot;North America&amp;quot;, Sales=5000 },&lt;br /&gt;
              new Customer { ID=&amp;quot;O&amp;quot;, City=&amp;quot;Cairo&amp;quot;, Country=&amp;quot;Egypt&amp;quot;, Region=&amp;quot;Africa&amp;quot;, Sales=6000 },&lt;br /&gt;
              new Customer { ID=&amp;quot;R&amp;quot;, City=&amp;quot;Beijing&amp;quot;, Country=&amp;quot;China&amp;quot;, Region=&amp;quot;Asia&amp;quot;, Sales=9000 },&lt;br /&gt;
              new Customer { ID=&amp;quot;T&amp;quot;, City=&amp;quot;Lima&amp;quot;, Country=&amp;quot;Peru&amp;quot;, Region=&amp;quot;South America&amp;quot;, Sales=2002 }&lt;br /&gt;
           };&lt;br /&gt;
            var queryResults =&lt;br /&gt;
                from c in customers&lt;br /&gt;
                orderby c.Sales descending&lt;br /&gt;
                select new { c.ID, c.City, c.Country, c.Sales }&lt;br /&gt;
               ;&lt;br /&gt;
            Console.WriteLine(&amp;quot;Top Five Customers by Sales&amp;quot;);&lt;br /&gt;
            foreach (var item in queryResults.Take(5))&lt;br /&gt;
            {&lt;br /&gt;
                Console.WriteLine(item);&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
    }&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Using a compound orderby to sort a list of digits first by length of their name, and then alphabetically.==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;using System;&lt;br /&gt;
using System.Collections.Generic;&lt;br /&gt;
using System.Linq;&lt;br /&gt;
using System.Text;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
    public static void Main() {&lt;br /&gt;
        string[] digits = { &amp;quot;zero&amp;quot;, &amp;quot;one&amp;quot;, &amp;quot;two&amp;quot;, &amp;quot;three&amp;quot;};&lt;br /&gt;
        var sortedDigits =&lt;br /&gt;
            from d in digits&lt;br /&gt;
            orderby d.Length, d&lt;br /&gt;
            select d;&lt;br /&gt;
        Console.WriteLine(&amp;quot;Sorted digits:&amp;quot;);&lt;br /&gt;
        foreach (var d in sortedDigits) {&lt;br /&gt;
            Console.WriteLine(d);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Using a compound orderby to sort a list of products, first by category, and then by unit price, from highest to lowest.==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;using System;&lt;br /&gt;
using System.Collections.Generic;&lt;br /&gt;
using System.Linq;&lt;br /&gt;
using System.Text;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
    public static void Main() {&lt;br /&gt;
        List&amp;lt;Product&amp;gt; products = GetProductList();&lt;br /&gt;
        var sortedProducts =&lt;br /&gt;
            from p in products&lt;br /&gt;
            orderby p.Category, p.UnitPrice descending select p;&lt;br /&gt;
        foreach (var s in sortedProducts) {&lt;br /&gt;
            Console.Write(s);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    static List&amp;lt;Product&amp;gt; GetProductList() {&lt;br /&gt;
        List&amp;lt;Product&amp;gt; empTree = new List&amp;lt;Product&amp;gt;();&lt;br /&gt;
        empTree.Add(new Product { ProductName = &amp;quot;A&amp;quot;, Category = &amp;quot;O&amp;quot;, UnitPrice = 12, UnitsInStock = 5, Total = 36, OrderDate = new DateTime(2005, 1, 1), Id = 1 });&lt;br /&gt;
        empTree.Add(new Product { ProductName = &amp;quot;B&amp;quot;, Category = &amp;quot;O&amp;quot;, UnitPrice = 2, UnitsInStock = 4, Total = 35, OrderDate = new DateTime(2005, 1, 1), Id = 1 });&lt;br /&gt;
        empTree.Add(new Product { ProductName = &amp;quot;C&amp;quot;, Category = &amp;quot;O&amp;quot;, UnitPrice = 112, UnitsInStock = 3, Total = 34, OrderDate = new DateTime(2005, 1, 1), Id = 1 });&lt;br /&gt;
        empTree.Add(new Product { ProductName = &amp;quot;D&amp;quot;, Category = &amp;quot;O&amp;quot;, UnitPrice = 112, UnitsInStock = 0, Total = 33, OrderDate = new DateTime(2005, 1, 1), Id = 1 });&lt;br /&gt;
        empTree.Add(new Product { ProductName = &amp;quot;E&amp;quot;, Category = &amp;quot;O&amp;quot;, UnitPrice = 1112, UnitsInStock = 2, Total = 32, OrderDate = new DateTime(2005, 1, 1), Id = 1 });&lt;br /&gt;
        empTree.Add(new Product { ProductName = &amp;quot;F&amp;quot;, Category = &amp;quot;O&amp;quot;, UnitPrice = 11112, UnitsInStock = 0, Total = 31, OrderDate = new DateTime(2005, 1, 1), Id = 1 });&lt;br /&gt;
        return empTree;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
class Product : IComparable&amp;lt;Product&amp;gt; {&lt;br /&gt;
    public string ProductName { get; set; }&lt;br /&gt;
    public string Category { get; set; }&lt;br /&gt;
    public int UnitPrice { get; set; }&lt;br /&gt;
    public int UnitsInStock { get; set; }&lt;br /&gt;
    public int Total { get; set; }&lt;br /&gt;
    public DateTime OrderDate { get; set; }&lt;br /&gt;
    public int Id { get; set; }&lt;br /&gt;
    public override string ToString() {&lt;br /&gt;
        return String.Format(&amp;quot;Id: {0}, Name: {1} , Category: {3}&amp;quot;, this.Id, this.ProductName, this.Category);&lt;br /&gt;
    }&lt;br /&gt;
    int IComparable&amp;lt;Product&amp;gt;.rupareTo(Product other) {&lt;br /&gt;
        if (other == null)&lt;br /&gt;
            return 1;&lt;br /&gt;
        if (this.Id &amp;gt; other.Id)&lt;br /&gt;
            return 1;&lt;br /&gt;
        if (this.Id &amp;lt; other.Id)&lt;br /&gt;
            return -1;&lt;br /&gt;
        return 0;&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Using orderby clause to order result==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;using System;&lt;br /&gt;
using System.Collections.Generic;&lt;br /&gt;
using System.Linq;&lt;br /&gt;
using System.Text;&lt;br /&gt;
    class Program&lt;br /&gt;
    {&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            string[] names = { &amp;quot;Zheng&amp;quot;, &amp;quot;Smith&amp;quot;, &amp;quot;Small&amp;quot; };&lt;br /&gt;
            var queryResults =&lt;br /&gt;
                from n in names&lt;br /&gt;
                where n.StartsWith(&amp;quot;S&amp;quot;)&lt;br /&gt;
                orderby n&lt;br /&gt;
                select n;&lt;br /&gt;
            foreach (var item in queryResults)&lt;br /&gt;
            {&lt;br /&gt;
                Console.WriteLine(item);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Where with OrderBy==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;using System;&lt;br /&gt;
using System.Collections.Generic;&lt;br /&gt;
using System.Linq;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
    public static void Main() {&lt;br /&gt;
        string[] names = { &amp;quot;J&amp;quot;, &amp;quot;P&amp;quot;, &amp;quot;G&amp;quot;, &amp;quot;Pa&amp;quot; };&lt;br /&gt;
        IEnumerable&amp;lt;string&amp;gt; query = names.Where(n =&amp;gt; n.Contains(&amp;quot;a&amp;quot;))&lt;br /&gt;
                                         .OrderBy(n =&amp;gt; n.Length)&lt;br /&gt;
                                         .Select(n =&amp;gt; n.ToUpper());&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>