我想知道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或其他什么?
答案 0 :(得分:1)
你可以试试LINQ。
您需要添加对System.LINQ(和using System.Linq;
)的引用,如果您还没有。
然后,您可以使用以下语句对所需的值求和:
int sum = gridView.Rows.Sum(row => Convert.ToInt32(row.Cells["Amount"]));
答案 1 :(得分:0)
是的,您可以使用Sum
扩展方法:
var sum = gridView.Rows.OfType<DataGridViewRow>().Sum(row => Convert.ToInt32(row.Cells["Amount"]));
您应该首先使用OfType
,因为DataGridViewRowCollection
没有实现IEnumerable<T>
,只有IEnumerable