在VB.NET中从数组中删除元素

时间:2014-06-02 19:03:45

标签: vb.net

我有以下变量。

Dim strValues As String(),其值为“1”,“2”,“3”,“4”,“5”,“6”,“7”

我想根据字符串索引从StrValues中删除“4”而不知道vb.net中的字符串值。我怎么能这样做?

3 个答案:

答案 0 :(得分:7)

为简单起见,我使用Linq:

Dim strValues = {"1", "2", "3", "4", "5", "6", "7"}
strValues = strValues.Where(Function(s) s <> "4").ToArray 'Removes all instances

更好的是,使用列表:

Dim strValues = {"1", "2", "3", "4", "5", "6", "7"}.ToList
strValues.Remove("4") 'Removes first instance of "4" only

如果你想通过索引的值来做,你可以做类似下面的事情(尽管这些将删除值的所有实例):

Dim index = 3
strValues = strValues.Where(Function(s) s <> strValues(index)).ToArray

strValues = strValues.Except({strValues(index)}).ToArray

要删除或跳过给定索引(仅限单个实例),您可以执行以下操作:

Dim index = 3
strValues = strValues.Take(index).Concat(strValues.Skip(index + 1)).ToArray

答案 1 :(得分:1)

 Dim strValues As String() = New String() {"1", "2", "3", "4"}
 Dim strList As List(Of String) = strValues.ToList()
 strList.Remove("4")
 strValues = strList.ToArray()

答案 2 :(得分:0)

根据您的意思&#34;删除&#34;,您可以做几件事。首先,如果你是一个动态大小的数组,你可能想要查看ArrayListList(of T)。此类允许您在必要时为您调整对象时添加和删除对象。但是,如果您真的想要从数组中删除它,可以将值设置为0Nothing,或者将数组中的所有值移到一个索引之后。