2012-03-17 61 views
1

我想填充一个字符串中的所有唯一值的数组,以防止我每次发现一个数组时,每当我找到一个未包含在数组中的值时试图创建(消耗大量的时间),我想首先获得唯一值,所以我只需要ReDim一次,然后我可以遍历字符串,我拥有的数组将是唯一值的正确大小我AQUIRE(我用这个...)检索一个字符串中的唯一值数

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

我怎样才能得到唯一值的数量轻松快速地?

干杯 马丁

+1

请正确标记。这不是VB6。我猜你正在使用VB.NET? – 2012-03-17 07:08:04

+0

你是什么意思,这不是VB6?我使用的Visual Studio 2010和语言是可视化的基本.. – marscom 2012-03-17 07:11:38

+0

这是明确的VB6,因为我已经检查,它说的Visual Basic,而不是visual basic.net(除非在visual studio 2010 vb = vb.net) – marscom 2012-03-17 07:54:24

回答

1

如果 “价值” 你的意思是 “角色”,然后

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

好吧,这不是VB6 :) – 2012-03-17 08:53:43

+0

是的,欢呼的答案:) – marscom 2012-03-18 23:00:32

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 
相关问题