#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);