我有一个数组Newstr(20)当我填写它时,我需要知道它已经填充了多少索引?并找出价值观。
答案 0 :(得分:3)
我需要知道它已填充了多少索引?
数组不保留该信息。他们只知道你分配了多少个点。您必须跟踪自己分配的数量。更重要的是,如果你正在使用一个你不知道会有多少项目的集合,那么阵列首先是错误的选择。你应该使用List(Of T)代替。
答案 1 :(得分:0)
您可以使用已知字符串填充数组,然后测试该字符串以查看数组中有多少元素被填充。
我会 - 但是 - 建议使用数组列表。您可以从Count属性中获取添加到列表中的元素数。这是Array Lists的MSDN条目。
答案 2 :(得分:0)
为了找到哪些元素已被填充,您可以使用这样的LINQ结构:
Dim input() = New String() {"abc", "def", "ghi", "", Nothing}
Dim output = input.Where(Function(i) Not String.IsNullOrEmpty(i)).ToArray
运行此代码时,输出数组将包含"abc"
,"def"
和"ghi"
。
如果您正在为不同类型的数组编码,则可以修改Where
的选择器以满足您的偏好。
例如Integer?
的选择器将是:
input.Where(Function(i) (Not i Is Nothing) Or (i <> 0)).ToArray
当然,您必须使用.NET 3.5+进行编码才能访问LINQ。