2017-09-29 46 views
-2

所以我有一个数字列表框,我想从每个列表框中减去一个整数。这里有一个例子:如何从列表框中的每个数字中减去x

1 
2 
3 
4 
5 

我想要得到的差异

Math.Abs(2 - 1) 
Math.Abs(2 - 2) 
Math.Abs(2 - 3) 
Math.Abs(2 - 4) 
Math.Abs(2 - 5) 

的绝对值,并把它们在列表框中。 我已经试过:

while (i < listBox1.Items.Count) 
{ 
    result -= Convert.ToInt32(listBox1.Items[i++]); 
    int result1 = Convert.ToInt32(result) 
    int sub = Math.abs(result1) 
} 
+2

好。你有什么尝试,为什么不工作? –

+1

请阅读[问]并参加[旅游]。我的猜测是,将涉及一个循环 – Plutonix

+0

'list.Select(n => x-n);'应该这样做。但至少显示你试过的东西 –

回答

0

将这工作:

我使用Select(x => {return x;})符号LINQ做数组元素的操作,并返回一个值。在这种情况下,该操作是数组中每个元素的Math.abs和给定的数字。 _absDiffs将是IEnumerable<int>,您可以拨打.ToArray()将它变成int[]

int[] _nums = {1,2,3,4,5}; 
int _number = 2; 

var _absDiffs = _nums.Select(num=> { return Math.abs(_number - num);}); 
+0

是的,但是我已经解析了列表框中的所有数字,是否有方法可以更改_nums到: 'listbox1.Items' 没关系,我明白了。谢谢! –

+0

你能更清楚地说明你的代码是什么意思吗?一个例子可以帮助保存你的数字的代码会很好。 –

+0

当你可以使用Select(num => x)'时,为什么使用'Select(num => {return x;})'? –

相关问题