2

これを Linq to dataset を使用するように変換するにはどうすればよいですか?

foreach (Row row in Rows) 
{ 
    if (row.material> 0) 
        sumtid += row.time * row.material; 
    else 
        sumtid += row.time; 
} 
4

2 に答える 2

7
var sumtid = Rows.Sum(x => x.time * (x.materials > 0 ? x.materials : 1));

また

var sumtid = Rows.Sum(x => x.materials > 0 ? x.time * row.materials : x.time);

あなたのRows変数はIEnumerable<Row>.

編集

問題を解決する別の方法:

var sumtid = Rows.Select(x => x.materials > 0 ? x.time * row.materials : x.time)
                 .Sum();
于 2013-10-21T05:16:25.787 に答える
2

@MarcinJuraszek の回答に加えて、コードをそのまま使用することもできます。

var sumtid = Rows.Sum(row =>
    {
        if (row.material> 0) 
            return row.time * row.material; 
        else 
            return row.time; 
    });
于 2013-10-21T05:19:17.633 に答える