У меня есть две таблицы данных.
datatable 1 имеет данные со столбцами FirstName, LastName, DOB, Gender datatable 2 имеет данные со столбцами CustomerID, FirstName, LastName, DOB, Gender
Я хочу сравнить имя, фамилию, дату рождения и пол в таблицах данных 1 и 2, и если есть совпадение, загрузить эту строку в таблицу данных 2 в новую таблицу данных.
Ниже то, что я использую, я могу сравнить с именем, но я хочу добавить фамилию, дату рождения и пол. Пожалуйста, не могли бы вы показать мне, как я могу это сделать?
Я хочу сделать это так, чтобы если имя, фамилия, доб и пол совпадают, то возвращалась соответствующая строка в таблице данных 2. Длина столбца между таблицами различна.
DataTable dtMerged = (from a in dataTable.AsEnumerable()
join b in dt.AsEnumerable()
on a["Forename"].ToString() equals b["FirstName"].ToString()
into g
where g.Count() > 0
select a).CopyToDataTable();
dtMerged.AsDataView();
@edcoder да, это действительно дубликат. может быть не точным.
Попробуй это
DataTable dtMerged = dataTable.AsEnumerable()
.Where(ra => dt.AsEnumerable()
.Any(rb => rb.Field<string>("firstname") == ra.Field<string>("firstname")
&& rb.Field<string>("lastname") == ra.Field<string>("lastname")
&& rb.Field<DateTime>("dob") == ra.Field<DateTime>("dob")
&& rb.Field<string>("gender") == ra.Field<string>("gender")))
.CopyToDataTable();
Спасибо @Shyam. Это работает. Именно то, что я хотел.
извини @Анас, это не дубликат. Я прошел этот ответ, но он сравнивает все столбцы, но я хочу сравнить определенные столбцы.