7

私は以下のようなことをしたい:

total.ForEach(x => x = Math.Abs(x));

ただし、x は参考値ではありません。どうすればそれを行うことができますか?

編集:

別のリストを作成せず、for ループを使用せずに、その場でこれを行うことは可能ですか?

4

3 に答える 3

17

Linq を使用できます。

total.Select(x => Math.Abs(x)).ToList();

これにより、 の絶対値の新しいリストが得られますtotal。その場で修正したい場合

for(int i = 0; i < total.Count; i++)
{
     total[i] = Math.Abs(total[i]);
}
于 2012-11-10T20:36:38.553 に答える
4

私が正しく理解している場合は、絶対値のリストが必要です。次のようなものを試してください

 List<long> a = new List<long>() { 10, -30, 40 }; //original list
 List<long> b = a.ConvertAll<long>(x => Math.Abs(x)); //abs list
于 2012-11-10T20:37:50.653 に答える