2012-11-10 50 views
4

我想要做的事象下面這樣:如何獲取列表中所有元素的絕對值?

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

然而x不是一個參考值。我該怎麼去做呢?

編輯:

是否有可能在的地方,而不是創造另一個列表,而不是使用一個循環做到這一點?

回答

12

您可以使用Linq。

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

這將使你在total絕對值的一個新的列表。 如果你想在地方

for(int i = 0; i < total.Count; i++) 
{ 
    total[i] = Math.Abs(total[i]); 
} 
4

修改如果我理解正確地將你想要的ABS值的列表。嘗試類似

List<long> a = new List<long>() { 10, -30, 40 }; //original list 
List<long> b = a.ConvertAll<long>(x => Math.Abs(x)); //abs list 
相關問題