欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C#中巧用妙法避免嵌套方式使用两个foreach循环

程序员文章站 2022-06-10 19:32:39
问题:需要对DataGridViewRow的下拉框列Item2所选内容进行判断,看是否跟数据库里面某个配置表的数据列Item1匹配。如果用两个foreach循环进行匹配,会导致逻辑复杂而且容易只break里面那层循环而忽略break外层循环而造成bug. 解决方案:巧妙使用List,把配置表满足条件 ......

问题:
需要对datagridviewrow的下拉框列item2所选内容进行判断,看是否跟数据库里面某个配置表的数据列item1匹配。
如果用两个foreach循环进行匹配,会导致逻辑复杂而且容易只break里面那层循环而忽略break外层循环而造成bug.

解决方案:
巧妙使用list,把配置表满足条件的item1统计装到list,再使用list的contains方法来判断datagridviewrow是否有行的item2列是等于item1相关项。

代码:

list<string> list = new list<string>();

datatable dt = xxxx;
foreach (datarow dr in dt.rows)
{
    list.add(dr["item1"].tostring());
}

foreach (datagridviewrow row in dgv.rows)
{
    if (list.contains(row.cells["item2"].editedformattedvalue.tostring()))
    {
        strxx = row.cells["xxxx"].editedformattedvalue.tostring();
        break;
    }
}