我有以下变量。
Dim strValues As String(),其值为“1”,“2”,“3”,“4”,“5”,“6”,“7”
我想根据字符串索引从StrValues中删除“4”而不知道vb.net中的字符串值。我怎么能这样做?
答案 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;,您可以做几件事。首先,如果你是一个动态大小的数组,你可能想要查看ArrayList
或List(of T)
。此类允许您在必要时为您调整对象时添加和删除对象。但是,如果您真的想要从数组中删除它,可以将值设置为0
或Nothing
,或者将数组中的所有值移到一个索引之后。