C#中巧用妙法避免嵌套方式使用两个foreach循环
程序员文章站
2023-10-30 23:16:40
问题:需要对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; } }