Сравните столбец с допустимыми значениями

#c# #linq #datatable #dataset #linq-to-objects

#c# #linq #datatable #набор данных #привязка к объектам #linq-to-objects

Вопрос:

У меня есть 2 набора данных ds1 и ds2 ds1 содержит допустимые значения, используемые в ds2, например, ds1 содержит предметную таблицу, содержащую математику, естественные науки, историю. ds2 содержит таблицу Student Таблица Student содержит столбец Subject. значения ds2-> Student-> Subject должны присутствовать в ds-> subject table.

Как эффективно реализовать этот тип проверки. Я не хочу перебирать каждую строку и столбец таблицы student.

например
Таблица студентов
Название темы
Питер Математик,
Джордж Наука
, Джо ИТ
, Роджер История

Таблица предметов
Тема
Математические
науки
,
история математики

Теперь я хочу сверить данные в таблице Students с таблицей Subject, проверить, присутствует ли Subject в таблице Subjects или нет. Здесь я хочу, чтобы строка добавила ЭТО, поскольку ЕЕ нет в таблице Subjects, она недопустима.

Аналогично, мне нужно проверить данные таблицы Students с несколькими таблицами, такими как Subjects.

Я хочу запрос LINQ.

Комментарии:

1. Пожалуйста, сформулируйте более четкий вопрос. Приведите несколько примеров и объясните, почему вы не хотите перебирать строки / столбцы.

2. Вы можете использовать Linq для запроса таблиц данных, однако, в зависимости от вашего сценария, перебор таблиц, безусловно, может быть эффективным. Однако вам нужно больше информации о том, чего вы пытаетесь достичь.

Ответ №1:

Используйте следующий запрос

 var noSubject =
  ds.Student.AsEnumerable().Where(s => ds.Subject.Rows.Find(s.Subject) == null);