2010-07-09 61 views

回答

3

我需要知道它的索引中有多少填充了?

數組不保存這些信息。他們只知道你分配了多少個點。你必須跟蹤你自己分配了多少。更重要的是,如果您正在處理一個不知道會有多少項目的集合,那麼陣列實際上是錯誤的選擇。您應該使用List(Of T)。

+0

+1,List(Of T)不會限制您添加到數組中的項目數。 – 2010-07-09 03:13:37

+0

那麼,測試沒什麼會工作... – 2010-07-09 03:26:30

+0

@Hans - 不一定。如果「無」是允許的值,該怎麼辦?或者如果它是一個值類型的集合? – 2010-07-09 03:31:20

0

您可以使用已知字符串填充數組,然後測試該字符串以查看數組中有多少元素被填充。

我會 - 但是 - 建議使用數組列表。您可以從Count屬性中獲取添加到列表中的元素數量。這是Array Lists的MSDN條目。

0

爲了找到其中的元素已經排滿,你可以使用LINQ結構是這樣的:

Dim input() = New String() {"abc", "def", "ghi", "", Nothing} 
    Dim output = input.Where(Function(i) Not String.IsNullOrEmpty(i)).ToArray 

當你運行該代碼時,輸​​出數組將包含​​,"def""ghi"。 如果您正在編寫不同類型的陣列,則可以修改Where的選擇器以適合您的偏好。

例如,對於Integer?選擇將是:

input.Where(Function(i) (Not i Is Nothing) Or (i <> 0)).ToArray 

當然,你必須要在.NET中,以獲得對LINQ訪問編碼3.5+。