如果我有一个正整数和负整数的列表:
var values = new List<int> { -30, -20, -10, 0, 10, 20, 30 };
如何将所有值转换为正数?
var values = new List<int> { 30, 20, 10, 0, 10, 20, 30 };
我知道我可以使用intValue = intValue * -1
,但这只能将负片转换为正片,反之亦然。此外,如果可能的话,我想使用LINQ。
答案 0 :(得分:11)
使用Math.Abs
:
var positives = values.Select(i => Math.Abs(i)).ToList();
使用方法组语法缩短的表单(如评论中@CommuSoft所述):
var positives = values.Select(Math.Abs).ToList();
答案 1 :(得分:5)
values.Select(Math.Abs).ToList();
或者
values.Select(n => n < 0 ? -n : n).ToList();
或(最快的方式)
values.Select(n => n & int.MaxValue).ToList();