У меня есть метод, который возвращает List<IDictionary<string,object>>
.
Объекты для словаря создаются с помощью ExpandoObject
, а затем добавляются в список с помощью цикла foreach. Вот пример такого объекта:
var dataItem = new ExpandoObject() as IDictionary<string, object>;
dataItem["String Property 1"] = "String Value 1";
dataItem["String Property 2"] = "String Value 2";
dataItem["DateTime Property 1"] = "DateTime Value 1";
dataItem["DateTime Property 2"] = "DateTime Value 2";
Из того, что возвращает метод, мне нужно выбрать разные значения «свойства DateTime 1», но только для его части даты. Итак, я пытаюсь сделать следующее:
var unique = GetData().Select(s => s["DateTime Property 1"].ToShortDateString()).Distinct();
Но там написано, что такого метода как ToShortDateString()
нет:
IEnumerable» не содержит определения для «ToShortDateString», и не удалось найти метод расширения «ToShortDateString», принимающий первый аргумент типа «IEnumerable».
Почему object
в словаре не преобразуется автоматически в тип DateTime
, когда свойству присваивается значение DateTime
? Когда везде использую dynamic
вместо object
все работает нормально.
Как заставить его работать при использовании object
?