将列表中的项目与数据表中的项目进行比较

时间:2014-12-22 10:07:43

标签: c# list datatable

这是我的清单:

 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个项目。

2 个答案:

答案 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()))
  }