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

问题:
需要对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;
    }
}

 

你可能感兴趣的:(C#中巧用妙法避免嵌套方式使用两个foreach循环)