VB.Net中的数组

VB.Net中的数组,vb.net,arrays,Vb.net,Arrays,我有一个数组Newstr(20),当我填充它时,我需要知道它有多少索引被填充?并找出这些值 我需要知道它有多少索引被填充了 数组不保存这些信息。他们只知道你分配了多少名额。你必须跟踪自己分配的数量。更重要的是,如果您使用的是一个不知道将有多少项的集合,那么从一开始阵列就是一个错误的选择。你应该用一个列表来代替 我需要知道它有多少索引被填充了 数组不保存这些信息。他们只知道你分配了多少名额。你必须跟踪自己分配的数量。更重要的是,如果您使用的是一个不知道将有多少项的集合,那么从一开始阵列就是一个错误

我有一个数组Newstr(20),当我填充它时,我需要知道它有多少索引被填充?并找出这些值

我需要知道它有多少索引被填充了

数组不保存这些信息。他们只知道你分配了多少名额。你必须跟踪自己分配的数量。更重要的是,如果您使用的是一个不知道将有多少项的集合,那么从一开始阵列就是一个错误的选择。你应该用一个列表来代替

我需要知道它有多少索引被填充了


数组不保存这些信息。他们只知道你分配了多少名额。你必须跟踪自己分配的数量。更重要的是,如果您使用的是一个不知道将有多少项的集合,那么从一开始阵列就是一个错误的选择。您应该使用一个(T)列表。

您可以用一个已知字符串填充数组,然后测试该字符串以查看数组中填充了多少元素


然而,我建议使用数组列表。可以从Count属性获取添加到列表中的元素数。这是的MSDN条目。

您可以使用已知字符串填充数组,然后测试该字符串以查看数组中填充了多少元素


然而,我建议使用数组列表。可以从Count属性获取添加到列表中的元素数。这是的MSDN条目。

要查找已填充的元素,可以使用以下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
input.Where(函数(i)(非i为零)或(i0)).ToArray

当然,为了访问LINQ,您必须在.NET 3.5+中进行编码。

为了找到已填充的元素,您可以使用如下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
input.Where(函数(i)(非i为零)或(i0)).ToArray

当然,您必须在.NET 3.5+中编码才能访问LINQ。

+1,列表(T)不会限制您在数组中添加的项目数。@Hans-不一定。如果“nothing”是允许的值怎么办?或者,如果它是一个值类型的集合?+1,(T的)列表将不会限制要添加到数组中的项数。@Hans-不一定。如果“nothing”是允许的值怎么办?或者如果它是一个值类型的集合?