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