c# 4.0 - Groovy在C#上的.collect()等效物
本文关键字:collect 上的 Groovy | 更新日期: 2023-09-27 17:57:17
我想知道 C# 中是否有一种方法可以将集合的每个元素转换为我喜欢的东西?
这是我当前汇总一行数据的代码:
// C#
int sum = 0;
foreach (DataGridView row in gridView.Rows)
{
sum += Convert.ToInt32(row.Cells["Amount"]);
}
我正在寻找使用 C# .Sum()
方法的解决方案。
在 groovy 中,我可以这样做来总结集合:
// Groovy
int sum = rows.collect { it.cells.amount as Integer }.sum()
这在 C# 中可能吗,比如 LINQ 或其他东西?
你可以
试试LINQ。
您需要添加对 System.LINQ 的引用(以及一个 using System.Linq;
),如果还没有的话。
然后,您可以使用以下语句对所需的值求和:
int sum = gridView.Rows.Sum(row => Convert.ToInt32(row.Cells["Amount"]));
是的,您可以使用Sum
扩展方法:
var sum = gridView.Rows.OfType<DataGridViewRow>().Sum(row => Convert.ToInt32(row.Cells["Amount"]));
您应该首先使用OfType
,因为DataGridViewRowCollection
没有实现IEnumerable<T>
,而只实现IEnumerable