One of my colleagues was curious to know how to
implement a Distinct-OrderBy on a custom collection in LINQ. Here’s an
example. This example uses the Distinct and OrderBy on the CustomerName
property of the Customer class.
C#class Program{ static void Main(string[] args) { var cust = (from c in Customer.GetCustomers() select c.CustName) .Distinct() .OrderBy(x => x); foreach(var cst in cust) Console.WriteLine(cst); Console.ReadLine(); } } class Customer{ public int OrderId { get; set; } public string CustName { get; set; } public static List<Customer> GetCustomers() { List<Customer> cust = new List<Customer>(); cust.Add(new Customer() { OrderId = 1, CustName = "Zack" }); cust.Add(new Customer() { OrderId = 2, CustName = "Harry" }); cust.Add(new Customer() { OrderId = 3, CustName = "Jill" }); cust.Add(new Customer() { OrderId = 4, CustName = "Zack" }); cust.Add(new Customer() { OrderId = 5, CustName = "Martin" }); cust.Add(new Customer() { OrderId = 6, CustName = "Jill" }); return cust; } }VB.NET
Friend Class Program Shared Sub Main(ByVal args() As String) Dim cust = ( From c In Customer.GetCustomers() Select c.CustName).Distinct().OrderBy(Function(x) x) For Each cst In cust Console.WriteLine(cst) Next cst Console.ReadLine() End Sub End Class Friend Class Customer Public Property OrderId() As Integer Public Property CustName() As String Public Shared Function GetCustomers() As List(Of Customer) Dim cust As New List(Of Customer)() cust.Add(New Customer() With {.OrderId = 1, .CustName = "Zack"}) cust.Add(New Customer() With {.OrderId = 2, .CustName = "Harry"}) cust.Add(New Customer() With {.OrderId = 3, .CustName = "Jill"}) cust.Add(New Customer() With {.OrderId = 4, .CustName = "Zack"}) cust.Add(New Customer() With {.OrderId = 5, .CustName = "Martin"}) cust.Add(New Customer() With {.OrderId = 6, .CustName = "Jill"}) Return cust End Function End ClassYou can read more about Distinct and OrderBy
OUTPUT
No comments:
Post a Comment