VB .Net中的数组

时间:2010-07-09 03:01:23

标签: vb.net arrays

我有一个数组Newstr(20)当我填写它时,我需要知道它已经填充了多少索引?并找出价值观。

3 个答案:

答案 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。