Поиск повторяющихся символов в строке с помощью VB.NET

Чтобы найти повторяющиеся символы в строке с помощью VB.NET, вы можете использовать различные методы. Вот несколько примеров кода:

  1. Метод с использованием словаря:

    Imports System.Collections.Generic
    Public Module DuplicateCharactersFinder
    Public Sub Main()
        Dim input As String = "Hello, World!"
        Dim duplicates As New Dictionary(Of Char, Integer)()
        For Each c As Char In input
            If duplicates.ContainsKey(c) Then
                duplicates(c) += 1
            Else
                duplicates(c) = 1
            End If
        Next
        For Each pair As KeyValuePair(Of Char, Integer) In duplicates
            If pair.Value > 1 Then
                Console.WriteLine("Character '{0}' appears {1} times", pair.Key, pair.Value)
            End If
        Next
    End Sub
    End Module
  2. Метод с использованием LINQ:

    Imports System.Linq
    Public Module DuplicateCharactersFinder
    Public Sub Main()
        Dim input As String = "Hello, World!"
        Dim duplicates = input.GroupBy(Function(c) c) _
                             .Where(Function(g) g.Count() > 1) _
                             .Select(Function(g) New With {Key .Character = g.Key, Key .Count = g.Count()})
        For Each duplicate In duplicates
            Console.WriteLine("Character '{0}' appears {1} times", duplicate.Character, duplicate.Count)
        Next
    End Sub
    End Module
  3. Метод с использованием HashSet:

    Imports System.Collections.Generic
    Public Module DuplicateCharactersFinder
    Public Sub Main()
        Dim input As String = "Hello, World!"
        Dim duplicates As New HashSet(Of Char)()
        Dim duplicateCharacters As New HashSet(Of Char)()
        For Each c As Char In input
            If duplicates.Contains(c) AndAlso Not duplicateCharacters.Contains(c) Then
                Console.WriteLine("Character '{0}' is duplicate", c)
                duplicateCharacters.Add(c)
            Else
                duplicates.Add(c)
            End If
        Next
    End Sub
    End Module