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