I’m new to LINQ and want to know how to execute multiple where clause. This is what I want to achieve: return records by filtering out certain user names. I tried the code below but not working as expected.
DataTable tempData = (DataTable)grdUsageRecords.DataSource; var query = from r in tempData.AsEnumerable() where ((r.Field<string>('UserName') != 'XXXX') || (r.Field<string>('UserName') != 'XXXX')) select r; DataTable newDT = query.CopyToDataTable();
Thanks for the help in advance!!!
Well, you can just put multiple ‘where’ clauses in directly, but I don’t think you want to. Multiple ‘where’ clauses ends up with a more restrictive filter – I think you want a less restrictive one. I think you really want:
Note the && instead of ||. You want to select the row if the username isn’t XXXX and the username isn’t YYYY.
EDIT: If you have a whole collection, it’s even easier. Suppose the collection is called
ignoredUserNames:Ideally you’d want to make this a
HashSet<string>to avoid theContainscall taking a long time, but if the collection is small enough it won’t make much odds.