У меня есть список, который содержит перечисления. Он является стандартным Enum, но имеет прикрепленный к нему атрибут и метод расширения, который возвращает CHAR перечисления (см. Ниже - GetCharValue
); расширение работает отлично.
Теперь у меня есть (другой метод расширения для LINQ)
public static IQueryable<Building> WithStatus(this IQueryable<Building> qry,
IList<BuildingStatuses> buildingStatus)
{
return from v in qry
where buildingStatus.Where(item => item.GetCharValue() ==
v.Status)
select v;
}
Мне в основном нужно сказать "Возвратить" все в запросе, но только если v.Status находится в buildStatus... но помните, что buildStatus - это ILIST перечислений, поэтому я ДОЛЖЕН вызвать GetCharValue.
У меня была некоторая помощь, прежде чем я подумал, что правильный синтаксис
buildingStatus.Contains (v.Status)
но проблема в том, что buildingStatus - это список из списков Enum, поэтому я должен вызвать GetCharValue() для каждого элемента в списке Ilist, прежде чем говорить "Содержит".
Я думал, что есть что-то особенное, чтобы сделать это с помощью лямбда, используя Содержит - так, конечно, это не работает.
where buildingStatus.Contains(item => item.GetCharValue() == v.Status)
Может ли кто-нибудь помочь?