-
Notifications
You must be signed in to change notification settings - Fork 0
/
CSharp_LINQ_Sort.cs
65 lines (57 loc) · 1.97 KB
/
CSharp_LINQ_Sort.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
using System;
using System.Linq;
using System.Collections.Generic;
namespace Sort
{
class MainClass
{
public static void Main(string[] args)
{
var sortClass = new SortClass();
sortClass.GetSort();
}
}
class SortClass
{
public void GetSort()
{
var source = new[] {
new { Name = "Oliver", Age = 20 },
new { Name = "Jacob", Age = 17 },
new { Name = "Samantha", Age = 32 },
new { Name = "Emma", Age = 23 },
new { Name = "Thomas", Age = 17 },
};
// OrderBy()
// Sort in ascending order
var friend1 = source.OrderBy(n => n.Age);
foreach (var name1 in friend1)
Console.WriteLine(name1);
Console.WriteLine();
// OrderByDescending()
// Sort in descending order
var friend2 = source.OrderByDescending(e => e.Age);
foreach (var name2 in friend2)
Console.WriteLine(name2);
Console.WriteLine();
// ThenBy()
// Sort in ascending order, with priority given to elements with equal keys
var friend3 = source.OrderBy(e => e.Age).ThenBy(n => n.Name.Length);
foreach (var name3 in friend3)
Console.WriteLine(name3);
Console.WriteLine();
// ThenByDescending()
// Sort in descending order, with priority given to elements with equal keys
var friend4 = source.OrderBy(e => e.Age).ThenByDescending(n => n.Name.Length);
foreach (var name4 in friend4)
Console.WriteLine(name4);
Console.WriteLine();
// Reverse()
// Sort in reverse order
var friend5 = source.Reverse();
foreach (var name5 in friend5)
Console.WriteLine(name5);
Console.WriteLine();
}
}
}