gpt4 book ai didi

vb.net - 在 VB.NET 中使用大数组

转载 作者:行者123 更新时间:2023-12-02 10:58:05 30 4
gpt4 key购买 nike

我想从 Excel 中提取大量数据,对其进行操作然后将其放回。我发现最好的方法是将 Excel Range 中的数据提取到一个大数组中,更改数组上的内容并将其写回 Excel Range。

我现在正在使用 VB.NET 2008/2010 重写应用程序,并希望利用任何新功能。

目前我必须循环遍历数组的内容以查找具有特定值的元素;对大数组进行排序也很麻烦。我希望使用新功能,包括 LINQ 来操作数组中的数据。

有人对在大数组中过滤/查询、排序等数据的最简单方法有任何建议吗?另外,数组大小的合理限制是多少?

~非常感谢

最佳答案

虽然您有一个多管齐下的问题,但我选择回答有关使用 LINQ 操作数组的部分...

编辑 - 针对 2D 数组的 LINQ,VB.NET

System.Array(所有数组都从中派生)支持 .AsQueryable() 的扩展方法这意味着您可以直接使用 LINQ 处理 2D 数组,如下所示:

Option Infer On
Option Strict Off

Public Class DataProcessor

'something like this came from Excel, maybe a Range
Dim arrValues2D(,) As String = { _
{"1", "2", "3"}, _
{"100", "99", "98"}, _
{"2", "3", "4"} _
}

Private Sub FindLargeNumbers()

'LINQ against 2D array elements
Dim query = From v In arrValues2D Where (Int32.Parse(v) > 50 And Int32.Parse(v) < 101) Select CStr(v)

For Each thing As String In query
'do stuff
Console.Write(thing + ",")
Next

End Sub
End Class

最初的想法

(自上述解决方案以来几乎已被弃用)

你可以Implement IEnumerable(Of T) and IEnumerator(Of T) in Visual Basic “展平”您的 2D 数组(有效地一次返回一个值,就像它是一维数组一样)并使用 LINQ 对这些值执行操作。

根据数组元素的数据类型,为了写回它们,您可能需要将每个值包装在某些内容中,以便可以引用原始元素而不是其值的副本。

这只是一个总体计划,允许您针对 Excel 中已有的大型高效 2D 数组使用 LINQ 和“新功能”。

关于vb.net - 在 VB.NET 中使用大数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2085785/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com