Linq not in select on datatable

前端 未结 3 573
伪装坚强ぢ
伪装坚强ぢ 2021-01-01 06:02

Hi i\'ve got 2 data tables (bannedlist,countrylist), both contains list of country names and cods in columns cc and country. I am trying to do a query where i can select cou

3条回答
  •  庸人自扰
    2021-01-01 06:30

    Except would work if you use it on sequences of the countries:

    using System.Linq;
    ...
    
        var ccList = from c in ds.Tables[2].AsEnumerable()
                     select c.Field("Country"); 
        var bannedCCList = from c in ds.Tables[1].AsEnumerable()
                           select c.Field("Country");
        var exceptBanned = ccList.Except(bannedCCList);
    

    If you need the full rows where the countries aren't banned, you could try a left outer join:

        var ccList = ds.Tables[2].AsEnumerable();
        var bannedCCList = ds.Tables[1].AsEnumerable();
        var exceptBanned = from c in ccList
                           join b in bannedCCList
                             on c.Field("Country") equals b.Field("Country") into j
                           from x in j.DefaultIfEmpty()
                           where x == null
                           select c;
    

提交回复
热议问题