Сравнение элементов в списке с элементами в datatable

1

Это мой список:

 List<String> myItems = new List<String>();

и это как я сравниваю с элементами с элементами в datatable:

  for (int i = 0; i < dt.Rows.Count; i++)
  {
     if (myItems[i].ToString().Trim().Equals(dt.Rows[i][1].ToString().Trim()))
  }

Но приложение ломается, если количество элементов не совпадает. Например, в моем списке есть 30 элементов, но в dt есть 35.

  • 0
    так будет, потому что вы сравниваете по индексам
  • 0
    Есть ли другой способ сравнить?
Показать ещё 4 комментария
Теги:
list
datatable

2 ответа

1

Вы можете использовать самый низкий счет между списком и 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()))
  }
1

Чтобы найти элементы в вашем списке, которых нет в datatable

Items.Except(datatable.AsEnumerable().Select(r => r.Field<string>(columnIndex)));

Отмените приведенный выше оператор для элементов в вашей информации, которые не указаны в вашем списке

Ещё вопросы

Сообщество Overcoder
Наверх
Меню