Enumerable.Contains tells whether a sequence contains a specified element : Enumerable « Data Structure « VB.Net






Enumerable.Contains tells whether a sequence contains a specified element

 


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 Item) As 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.Code) AndAlso (x.Name = y.Name)
    End Function

    Public Function GetHashCode1(ByVal product As Item) As 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 fruits() As Item = 
           {New Item With {.Name = "apple", .Code = 9}, 
            New Item With {.Name = "orange", .Code = 4}, 
            New Item With {.Name = "lemon", .Code = 12}}
        
        Dim apple = New Item With {.Name = "apple", .Code = 9}
        Dim kiwi = New Item With {.Name = "kiwi", .Code = 8}
        
        Dim prodc As New ItemComparer()
        
        Dim hasApple = fruits.Contains(apple, prodc)
        Dim hasKiwi = fruits.Contains(kiwi, prodc)
        
        Console.WriteLine("Apple? " & hasApple)
        Console.WriteLine("Kiwi? " & hasKiwi)

    End Sub
End Class

   
  








Related examples in the same category

1.Enumerable.All tells whether all elements of a sequence satisfy a condition.
2.Enumerable.Any Determines whether a sequence contains any elements.
3.Enumerable.Concat(TSource) concatenates two sequences.
4.Enumerable.Distinct returns distinct elements from a sequence by using the default equality comparer to compare values.
5.Enumerable.Except produces the set difference of two sequences by using the default equality comparer to compare values.
6.Enumerable.Except produces the set difference of two sequences by using IEqualityComparer(Of T)
7.Enumerable.GroupBy groups the elements of a sequence according to a specified key selector function and projects the elements for each group by using a specified function.
8.Enumerable.Intersect produces the set intersection of two sequences
9.Enumerable.SequenceEqual Determines whether two sequences are equal by comparing the elements
10.Enumerable.SequenceEqual determines whether two sequences are equal by comparing their elements by using a specified IEqualityComparer(Of T).
11.Enumerable.Union returns set union of two sequences by using the default equality comparer.
12.Enumerable.Union produces the set union of two sequences by using a specified IEqualityComparer(Of T).