LINQ “кроме” оператора

у меня есть список события Ids, что я хочу быть исключенным из своего избранного оператора, но не уверенный, как реализовать это:

это - то, что хранит мой список события Ids

List<int> ExcludedEvents;

и это - мой избранный оператор (от канала XML)

var allEvents = from eventsList in xmlDoc.Elements("shows").Elements("Show")
                select new EventFeed()
                  {
                      EventName = eventsList.Attribute("Name").Value,
                      EventSummary = eventsList.Attribute("ShortDesc").Value,
                      EventDetails = eventsList.Attribute("LongDesc").Value,
                      EventShowCode = eventsList.Attribute("Code").Value
                  };

я хочу выбрать все события за исключением событий, которые имеют их eventId соответствие значению EventShowCode

я выглядел на кроме оператора, но не уверенным, как реализовать его

6
задан bzlm 12 April 2010 в 14:22
поделиться

1 ответ

исходя из вашего кода в вопросе, это должно выглядеть примерно так...

var filteredEvents = allEvents.Where(myEvent => !ExcludedEvents.Contains(myEvent.EventShowCode));

Или, если вы просто хотите добавить его в конец оператора select, просто возьмите Where и вставьте его в конец Select из предыдущего запроса...

var filteredEvents = xmlDoc.Elements("shows").Elements("Show") 
                     .Select( new  
                     { 
                         EventName = eventsList.Attribute("Name").Value, 
                         EventSummary = eventsList.Attribute("ShortDesc").Value, 
                         EventDetails = eventsList.Attribute("LongDesc").Value, 
                         EventShowCode = eventsList.Attribute("Code").Value 
                     })
                     .Where(myEvent => !ExcludedEvents.Contains(myEvent.EventShowCode));
4
ответ дан 17 December 2019 в 07:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: