LINQ中的错误结果

时间:2014-07-24 12:19:31

标签: c# linq visual-studio

我正在尝试学习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
...

但真正的结果就是这个(!): enter image description here

可能导致这种情况的原因是什么? 这实际上是错误的结果吗?

3 个答案:

答案 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";