Фильтрация таблицы данных по нескольким значениям - PullRequest
1 голос
/ 08 марта 2012

У меня есть 2 таблицы данных objdatatable1 и objdatatable2.

Мне нужно отфильтровать данные в objdatatable2 так, чтобы market_id в objdatatable2 не был в objdatatable1.

Я даже открываюсь в linq, которыйотфильтрует контакты не в пункте

Ответы [ 2 ]

2 голосов
/ 08 марта 2012

objdatatable2.AsEnumerable().SkipWhile(dr2 => { return objdatatable1.AsEnumerable().Any(dr1 => { return (dr1.Field<String>("market_id ") == dr2.Field<String>("market_id ")); }) });

0 голосов
/ 08 марта 2012

Копирует в DataTable dt все строки из objectdatatable2, которые имеют значения в поле 'market_id', которые не отображаются в поле с тем же именем в objectdatatable1. В этом редакторе поле market_id имеет тип string в objectdatatable2 и тип int в objectdatatable1.

// This creates an empty DataTable with the same structure as objdatatable2.
DataTable dt = objdatatable2.Clone();

var results = objdatatable2.AsEnumerable().Where(r2 => !objdatatable1.AsEnumerable().Any(r1 => (r2.Field<string>("market_id") == r1.Field<int>("market_id").ToString())));
// Copy results to the DataTable only if there are results.
if (results.Count() > 0) {
    dt = results.CopyToDataTable();
}
...