以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]定义了一个数组,想要删除数组指定位置的内容? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=68268) |
-- 作者:laly -- 发布时间:2015/5/13 19:42:00 -- [求助]定义了一个数组,想要删除数组指定位置的内容? 定义了一个数组,现在想要删除数组指定位置的内容,比如数组中第二个位置的内容,把美国去掉,用哪个函数呢,removeat 只能用与集合。 Dim Names() As String Names = New String() {"中国","美国","日本","俄罗斯"} names = names.xxxx??
|
-- 作者:大红袍 -- 发布时间:2015/5/13 20:25:00 -- 数组,是不能直接删除某个元素的。
数组如果要删除元素,就要操作后面的所有元素向前移动,比较麻烦。
建议直接用集合去做 |
-- 作者:大红袍 -- 发布时间:2015/5/13 20:26:00 -- 或者是,你数组的元素设置成空值。
如 names(1) = nothing |
-- 作者:laly -- 发布时间:2015/5/13 20:52:00 -- 以下是引用大红袍在2015/5/13 20:25:00的发言:
数组,是不能直接删除某个元素的。
数组如果要删除元素,就要操作后面的所有元素向前移动,比较麻烦。
建议直接用集合去做 |
-- 作者:laly -- 发布时间:2015/5/13 20:53:00 -- 请问:字符串可以转化为字符串集合吗? |
-- 作者:大红袍 -- 发布时间:2015/5/13 20:56:00 -- 可以,但需要用代码赋值
Dim str As String = "123,456,789" msgbox(ls.count) |
-- 作者:游 -- 发布时间:2015/5/13 22:36:00 -- 写个函数吧 函数:xxx Dim f() As String = Args(0) Dim i As Integer = Args(1) Dim j As Integer = f.Length Dim a(j-1) As String System.Array.Copy(f,0,a,0,i) System.Array.Copy(f,i+1,a,i,j-i-1) Return a 测试: Dim Names() As String Names = New String() {"中国","美国","日本","俄罗斯","美国","日本","俄罗斯"} Names = Functions.Execute("xxx",Names,0) For i As Integer = 0 To Names.Length - 1 Output.show(Names(i)) Next |
-- 作者:大红袍 -- 发布时间:2015/5/14 9:23:00 -- 回复7楼,用copy是得不偿失的,数组本来就是一段连续存储空间,你每一次删除元素,都要开辟一段新的空间,不好;
如果是在原有空间里移动位置的话,也耗时耗力;还不如直接设置为nothing或者用集合 |