Ну, вы можете просто вставить несколько предложений "где" напрямую, но я не думаю, что вы захотите. Множественные предложения "where" заканчиваются ограничительным фильтром more - я думаю, что вам нужен ограничительный less . Я думаю, что вы действительно хотите:
DataTable tempData = (DataTable)grdUsageRecords.DataSource;
var query = from r in tempData.AsEnumerable()
where r.Field<string>("UserName") != "XXXX" &&
r.Field<string>("UserName") != "YYYY"
select r;
DataTable newDT = query.CopyToDataTable();
Обратите внимание на && вместо ||. Вы хотите выбрать строку, если имя пользователя не XXXX и имя пользователя не ГГГГ.
РЕДАКТИРОВАТЬ: Если у вас есть целая коллекция, это даже проще. Предположим, что коллекция называется ignoredUserNames
:
DataTable tempData = (DataTable)grdUsageRecords.DataSource;
var query = from r in tempData.AsEnumerable()
where !ignoredUserNames.Contains(r.Field<string>("UserName"))
select r;
DataTable newDT = query.CopyToDataTable();
В идеале вы хотели бы сделать это HashSet<string>
, чтобы избежать вызова Contains
, который занимал бы много времени, но если коллекция достаточно мала, это не будет иметь больших шансов.