这是我的清单:
List<String> myItems = new List<String>();
这就是我与数据表中项目的比较:
for (int i = 0; i < dt.Rows.Count; i++)
{
if (myItems[i].ToString().Trim().Equals(dt.Rows[i][1].ToString().Trim()))
}
但如果项目数量不匹配,应用程序会中断。例如,在mylist中有30个项目,但在dt中有35个项目。
答案 0 :(得分:1)
查找列表中数据表中不存在的项目
Items.Except(datatable.AsEnumerable().Select(r => r.Field<string>(columnIndex)));
针对数据表中不在列表中的项目反转上述语句
答案 1 :(得分:1)
您可以使用list和dt之间的最低计数来进行lopping。所以你不会在循环中获得突破。
List<String> myItems = new List<String>();
int count = myItems.Count>dt.Rows.Count?dt.Rows.Count:myItems.Count; // it will give lowest count between them
现在在循环中使用此计数
for (int i = 0; i < count; i++)
{
if (myItems[i].ToString().Trim().Equals(dt.Rows[i][1].ToString().Trim()))
}