У меня есть такое большое перечисление:
public enum RetirementTypes
{
k401 = 1,
b403 = 2,
b457 = 3,
SimpleIRA = 4,
Simple401k = 5,
TIRA = 6,
RIRA = 7,
RothIRA = 8,
Solo401k = 9,
SEPIRA = 10,
FA = 11,
VA = 12,
ESOP = 14,
PERA = 15,
VL = 16,
SpousalIRA = 17,
BIRA = 19,
OtherRetirement = 22,
TSP = 23,
OtherIra = 24,
BRoth = 33
...
}//RetirementTypes
и я хочу определить в некоторых из моих компонентов некоторые подмножества этих типов. В идеале мой список должен быть постоянным/только для чтения и содержать уникальные элементы, и было бы неплохо, если бы я знал о проблеме Unique во время компиляции (я сомневаюсь, что для этого есть какое-либо решение).
Пока я использую IReadOnlyCollection. Например, это подмножество предназначено для идентификации некоторых типов IRA:
IReadOnlyCollection RETIREMENT_IRA_TYPES = [RetirementTypes.SEPIRA,
RetirementTypes.BIRA, RetirementTypes.RothIRA, RetirementTypes.OtherIra,RetirementTypes.RIRA, RetirementTypes.SpousalIRA, RetirementTypes.OtherIra, RetirementTypes.RothIRA ...]
В дальнейшем это будет фильтр в различных запросах типа:
iw.WbRetirements.Where(x => x.Owner == (int)OwnerType.Self && RETIREMENT_IRA_TYPES.Contains((RetirementTypes)x.RetirementPlanType)).Sum(b => b.Balance);
Подробнее здесь: https://stackoverflow.com/questions/790 ... collection