zoukankan      html  css  js  c++  java
  • C#迭代问题

    如图:

    实现效果:添加了多条数据到ListView列表里,在下面的文本框也对应添加“指令名称”,当我删除列表里的一要数据时(可能多条),在下面的文本框也对应删除对应的文本(文本框的显示顺序与列表不一致)。我想把删除列表的某条数据写成一个公共的方法,在方法删除时,对应的文本框文本也删除。所以想到的是用yield return.代码如下:

    公共方法:

     public static System.Collections.IEnumerable DeleteListItem(this ListView lv)
            {
                int n = lv.SelectedItems.Count;
                if (n > 0)
                {
                    ListView.SelectedListViewItemCollection sel_items = lv.SelectedItems;
                    for (int i = 0; i < n; i++)
                    {
                        ListViewItem sel_item = sel_items[0];
                        sel_item.Remove();
                        yield return sel_item;
                    }
                }
            }

    调用:

     private void toolDeleteDownNode_Click(object sender, EventArgs e)
            {
                System.Collections.IEnumerable ss = listView2.DeleteListItem();//调用

              
                foreach (ListViewItem i in ss)
                {
               
                }
            }

    问题:为什么只有在执行

       foreach (ListViewItem i in ss)
                {
               
                }这里的时候才会去执行迭代的方法?请大家帮帮小弟解释解释。。。谢谢了。

  • 相关阅读:
    实例
    LR接口测试---webservices
    LR常用函数整理
    Codeforces Round #639 (Div. 2) A. Puzzle Pieces
    Codeforces Round #640 (Div. 4)全部七题
    POJ3177 Redundant Paths(e-DCC+缩点)
    洛谷P3469 [POI2008]BLO-Blockade(割点)
    洛谷P3275 [SCOI2011]糖果(缩点+拓扑序DP)
    POJ1236 Network of Schools(强连通分量)
    P3387 【模板】缩点(Tarjan求强连通分量)
  • 原文地址:https://www.cnblogs.com/KimhillZhang/p/2850634.html
Copyright © 2011-2022 走看看