Следующая бросает исключение во время выполнения на последней строке:Неожиданное поведение с динамическим Список
dynamic dynamicCollection = new List<ExpandoObject>();
dynamic itemOne = new ExpandoObject();
itemOne.Name = "itemOne";
dynamicCollection.Add(itemOne);
dynamic itemTwo = new ExpandoObject();
itemTwo.Name = "itemTwo";
dynamicCollection.Add(itemTwo);
var firstItem = dynamicCollection.First();
«System.Collections.Generic.List <System.Dynamic.ExpandoObject>» не содержит определения для «First '
Что здесь происходит? Это выглядит вполне законным. Он явно признается как List<ExpandoObject>
, а общая коллекция не должна заботиться о значении T
.. правильно?
Это ошибка времени компиляции? если это так, попробуйте включить использование пространства имен System.Linq – NMK
ExtensionMethods разрешены (во время компиляции) на статические методы, которые берут исходный код в качестве первого аргумента. Динамический во время выполнения. Если вы вызываете статический метод напрямую и поставляете свой динамический список в качестве первого аргумента, он может работать. – Silvermind