Distinct with Object and IEqualityComparer : Distinct « LINQ « VB.Net

Home
VB.Net
1.2D
2.Application
3.Class
4.Data Structure
5.Data Types
6.Database ADO.net
7.Date Time
8.Development
9.Event
10.File Directory
11.Generics
12.GUI
13.Internationalization I18N
14.Language Basics
15.LINQ
16.Network Remote
17.Reflection
18.Security
19.Thread
20.Windows Presentation Foundation
21.Windows System
22.XML
23.XML LINQ
VB.Net » LINQ » DistinctScreenshots 
Distinct with Object and IEqualityComparer
 


Imports System
Imports System.Linq
Imports System.Collections.Generic
Public Class Item
    Public Property Name As String
    Public Property Code As Integer
End Class

Public Class ItemComparer
    Implements IEqualityComparer(Of Item)

    Public Function Equals1(ByVal x As Item, ByVal y As ItemAs Boolean Implements IEqualityComparer(Of Item).Equals
        If x Is y Then Return True

        If x Is Nothing OrElse y Is Nothing Then Return False

        Return (x.Code = y.CodeAndAlso (x.Name = y.Name)
    End Function

    Public Function GetHashCode1(ByVal product As ItemAs Integer Implements IEqualityComparer(Of Item).GetHashCode
        If product Is Nothing Then Return 0
        Dim hashItemName = If(product.Name Is Nothing, 0, product.Name.GetHashCode())
        Dim hashItemCode = product.Code.GetHashCode()
        Return hashItemName Xor hashItemCode
    End Function
End Class


Public Class Example

    Public Shared Sub Main() 
        
        Dim products() As Item = 
            {New Item With {.Name = "apple", .Code = 9}
             New Item With {.Name = "orange", .Code = 4}
             New Item With {.Name = "apple", .Code = 9}
             New Item With {.Name = "lemon", .Code = 12}}
        
        ' Exclude duplicates.
        
        Dim noduplicates = products.Distinct()
        
        For Each product In noduplicates
            Console.WriteLine(product.Name & " " & product.Code)
        Next


    End Sub
End Class

   
  
Related examples in the same category
1.Get only distinct makes
2.Distinct result
3.Distinct with Key
4.uses Distinct to find the unique Category names
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.