Vb.net 如何在不设置列数的情况下将所有行相加为一个总列?
我想把数据表中的所有行加起来,每个行都没有一个值,因为行的数量可能非常大。 列的数量是未知的,所以我不能简单地添加所有的行(列)+行(列) Col1 Col2 Col3总计 1 2.11 3.11 6.22 有什么建议吗Vb.net 如何在不设置列数的情况下将所有行相加为一个总列?,vb.net,datatable,sum,Vb.net,Datatable,Sum,我想把数据表中的所有行加起来,每个行都没有一个值,因为行的数量可能非常大。 列的数量是未知的,所以我不能简单地添加所有的行(列)+行(列) Col1 Col2 Col3总计 1 2.11 3.11 6.22 有什么建议吗 希望收到您的来信。您无法对所有行的所有列求和而不使用循环,这在技术上是不可能的。也许你认为LINQ可以神奇地做到这一点,而不需要一个循环。但它也使用循环,你只是看不到它们 但是,如果这些列的类型为Double,则以下内容应适用: Dim doubleColumns = tabl
希望收到您的来信。您无法对所有行的所有列求和而不使用循环,这在技术上是不可能的。也许你认为LINQ可以神奇地做到这一点,而不需要一个循环。但它也使用循环,你只是看不到它们 但是,如果这些列的类型为
Double
,则以下内容应适用:
Dim doubleColumns = table.Columns.Cast(Of DataColumn).
Where(Function(c) c.DataType = GetType(Double)).
ToArray()
Dim totalSum As Double = table.AsEnumerable().
Sum(Function(row) doubleColumns.Sum(Function(c) row.Field(Of Double)(c)))
我想,
Total
-列只是给我们展示了一个示例行。无论您是否看到(For…Each
)循环,都不可能没有循环(LINQ)。这些列的类型是Double
还是String
?它是双类型的