Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Базы данных под .NET > LINQ - выборка на исключение


Автор: swetik1981 10.3.2012, 08:51
Имеется таблица DataTable, один из столбцов с названием FAM содержит некоторые строковые значения:
Код

ID   FAM        NAM
1   Петров    Иван
2   Иванов    Сергей 
3   Сидоров  Максим
4   Павлов     Алексей


Имеется 1-мерный массив ARR со значениями, аналогичными тем, которые содержатся в столбце FAM таблицы DataTable: 
Код

Петров, Егоров, Алексеев, Павлов, Макаров


Необходимо посредством LINQ-запроса сделать выборку из DataTable только тех строк, которые в столбце FAM содержат значения , не встречающиеся в массиве ARR:
Код

ID   FAM         NAM
2     Иванов   Сергей 
3    Сидоров  Максим

Как это сделать, подскажите?

Автор: KelTron 12.3.2012, 14:05
Код

static void Main(string[] args)
{
    var table = new DataTable();
    table.Columns.Add("ID", typeof(int));
    table.Columns.Add("FAM", typeof(string));
    table.Columns.Add("NAM", typeof(string));

    table.Rows.Add(1, "Петров", "Иван");
    table.Rows.Add(2, "Иванов", "Сергей");
    table.Rows.Add(3, "Сидоров", "Максим");
    table.Rows.Add(4, "Павлов", "Алексей");

    var arr = new[] { "Петров", "Егоров", "Алексеев", "Павлов", "Макаров" };

    var result = table.AsEnumerable().Where(r => !arr.Contains(r.Field<string>("FAM")));
}


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)