2010-09-08 58 views
8

String數組,我將如何找到一個項目,在下面的代碼字符串數組索引:的IndexOf在VB.NET

Dim arrayofitems() as String 
Dim itemindex as UInteger 
itemindex = arrayofitems.IndexOf("item test") 
Dim itemname as String = arrayofitems(itemindex) 

我想知道我怎麼會找到的索引項中的一個字符串數組。 (所有的項目都是小寫的,所以情況應該沒有關係。)

+0

是不是你的樣品在做什麼? arrayOfItems.IndexOf(string) – Bertvan 2010-09-08 17:17:38

回答

14

這是對Array類的靜態(Shared)方法接受實際的數組作爲第一個參數,如:

Dim arrayofitems() As String 
Dim itemindex As Int32 = Array.IndexOf(arrayofitems, "item test") 
Dim itemname As String = arrayofitems(itemindex) 

MSDN page

+0

這很有效!謝謝! – Eugene 2010-09-08 17:26:04

+0

選擇的過載可能是'Array.IndexOf (T [],T)',而不是鏈接的'Array.IndexOf (T [],Object)'。 – Oded 2010-09-08 17:27:57

+0

@Oded:是的,有點困惑。謝謝。 – 2010-09-08 19:10:54

1

IndexOf將返回傳入的項目數組中的索引,如示例的第三行中所示。它是Array類中的靜態(共享)方法,其中several overloads - 因此您需要選擇正確的方法。

如果數組是填充,具有字符串「項檢測」作爲那麼它的項目之一下面一行將返回指數:

itemindex = Array.IndexOf(arrayofitems, "item test") 
+0

假設數組被填充(這是一個例子)...我得到一個錯誤「Error 重載解析失敗,因爲沒有可訪問的'IndexOf'接受這個數量的參數。 – Eugene 2010-09-08 17:20:37

+0

@ user389823 - 答案用正確的代碼更新。 – Oded 2010-09-08 17:24:51

+0

你會工作的。感謝您的快速回復= D – Eugene 2010-09-08 17:31:53

-1

踢,你可以使用LINQ

Dim items = From s In arrayofitems _ 
     Where s = "two" _ 
     Select s Take 1 

然後,您可以訪問像這樣的項目:

items.First 
+0

你可以這樣做,但是即使你不需要索引而不是值,找到完全匹配硬編碼字符串的字符串的值也沒有意義。 – 2010-09-08 17:56:01

2
Array.FindIndex(arr, (Function(c As String) c=strTokenKey) 

Array.FindIndex(arr, (Function(c As String) c.StartsWith(strTokenKey)))