我正在尝试学习LINQ,许多教程都是从这样的代码片段开始的:
private void button1_Click(object sender, EventArgs e)
{
int[] numbers = { 1,128,1569,136,658,1455,145 };
var items=
from item in numbers
select item;
foreach(var item in items)
label1.Text+=items.ToString() +"\n";
}
,结果预计是:
1
128
1596
...
但真正的结果就是这个(!):
可能导致这种情况的原因是什么? 这实际上是错误的结果吗?
答案 0 :(得分:5)
在foreach循环中使用item
代替items
。
foreach(var item in items)
label1.Text += item + "\n";
您也可以在一行中执行此操作:
label1.Text = string.Join(Environment.NewLine, items);
答案 1 :(得分:3)
您的代码中有一个小错字:
foreach(var item in items)
label1.Text+=items.ToString() +"\n";
应该是
foreach(var item in items)
label1.Text+=item.ToString() +"\n"; //items => item
P.S。:你知道LINQPad吗?这种小型“学习练习”的绝佳工具......
答案 2 :(得分:3)
将items
更改为item
:
label1.Text += item.ToString() +"\n";