Я получаю некоторые статические значения полей только для чтения, используя отражение, как это
FieldInfo[] allUnits =
new Unit().GetType().GetFields(BindingFlags.Static | BindingFlags.Public);
и затем я успешно получаю одно значение поля, подобное этому
Unit v = (Unit)allUnits[0].GetValue(null);
Console.WriteLine(v.Symbol.StartsWith("e"));
и он также печатает "True"
Так почему же этот запрос LINQ, чтобы получить несколько аналогичных значений полей, как это ...
IEnumerable<FieldInfo> fis2 =
from fi in allUnits
where ((Unit)fi.GetValue(null)).Symbol.StartsWith("e")
select fi;
... не удалось создать пустой набор результатов?
Исключение, которое я получаю: System.SystemException: specified cast is not valid