将整数列表中的所有数字转换为正数

本文关键字:转换 数字 整数 列表 | 更新日期: 2023-09-27 18:24:51

如果我有一个正整数和负整数的列表:

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来完成这项工作。

将整数列表中的所有数字转换为正数

使用Math.Abs:

var positives = values.Select(i => Math.Abs(i)).ToList();

或者使用方法组语法的缩写形式(如@CommuSoft在评论中提到的):

var positives = values.Select(Math.Abs).ToList();
values.Select(Math.Abs).ToList();

values.Select(n => n < 0 ? -n : n).ToList();

或者(最快的方式)

values.Select(n => n & int.MaxValue).ToList();