foreach错误:无法对类型进行操作,因为它不包含“ GetEnumerator”的公共定义

时间:2018-08-28 07:11:17

标签: c# .net foreach

我收到与foreach相关的错误,其中指出:

  

Foreach语句不能对类型'进行操作,因为它不包含'GetEnumerator'的公共定义。

我没有解决该错误。请建议进行更改以改善和更正代码中的错误。

public partial class Form1 : Form
{
     store store = new store();
    public List<item> insert= new List<item>();//this is the list of second list items


    BindingSource itemslist = new BindingSource();
    BindingSource selectitem2 = new BindingSource();
    public Form1()
    {
        InitializeComponent();
        setupdata();
        itemslist.DataSource = store.items;
        item.DataSource = itemslist;//linked between the two
        // what to print inside
        item.DisplayMember = "Display";
        item.ValueMember = "Display";
        //put the data to the selected item list
        selectitem2.DataSource=insert;
        selected_item.DataSource = selectitem2;

        selected_item.DisplayMember = "Display";
        selected_item.ValueMember = "Display";

    }


    private void purchase_Click(object sender, EventArgs e)
    {
        foreach (item item in selected_item)
        {

        }
    }
}

1 个答案:

答案 0 :(得分:1)

您无法遍历控件(ListBox)。 错误消息告诉您,它没有枚举器。您需要遍历基础数据收集。

您的情况应该是insert

因此将循环线更改为此:

foreach (item item in insert)

您当然可以遍历Items的{​​{1}}:

ListBox

编辑:

坦白说,您的命名方式也相当混乱。 foreach (item item in selected_item.Items) 听起来并不代表事物的集合,而是一个实体。