检索字符串中的唯一值的数量

时间:2012-03-17 06:33:29

标签: vb.net

我正在尝试使用字符串中的所有唯一值填充数组,以防止每次我找到一个尚未包含在我尝试创建的数组中的值时重新编写数组(消耗很多时间),我试图首先获得唯一值,所以我只需要ReDim一次,之后我可以简单地遍历字符串,我所拥有的数组将是我获取的唯一值的正确大小(我正在使用此...)

If array.Contains(string.Chars(atvalue)) = False Then...

如何轻松快速地获取唯一值的数量?

干杯 马丁

2 个答案:

答案 0 :(得分:1)

如果“值”表示“字符”,那么

Dim s As String = "dfgsdg"
Dim uc = s.Distinct().ToArray()

答案 1 :(得分:0)

你真正想要的答案是:

Public Function GetUniqueChars(text As String) As Char()
        Dim uniqueChars() As String
        uniqueChars=""

        If String.IsNullOrEmpty(text) Then Return uniqueChars

        uniqueChars &= text(0)

        For Each c In text.Substring(1)
            If Not uniqueChars.Contains(c) Then
                uniqueChars &= c
            End If
        Next

        Return uniqueChars.ToArray

    End Function

但是,从Net 3.5开始,您可以使用LINQ将此功能缩减为一行:

uniqueChars = text.Distinct().ToArray