2012-03-17 32 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 
相關問題