В настоящее время в LINQ, следующие компилирует и работает просто отлично:Используя LINQ, можно ли вывести динамический объект из оператора Select? Если да, то как?
var listOfFoo = myData.Select(x => new FooModel{
someProperty = x.prop1,
someOtherProperty = x.prop2
});
public class FooModel{
public string someProperty { get; set; };
public string someOtherProperty { get; set; };
}
Однако, последние несколько версий .NET/C# расширили роль динамических объектов, таких как ExpandoObject
и мне интересно, если есть способ в основном это сделать:
var listOfFoo = myData.Select(x => new ExpandoObject{
someProperty = x.prop1,
someOtherProperty = x.prop2
});
Очевидно, я уже пробовал код выше, без успеха, но кажется, что я что-то отсутствует.
D'oh! Человек, я чувствую себя глупым. Да, это было так просто. Может принимать ответ через 6 минут. Благодаря! –
@MatthewPatrickCashatt Обратите внимание, что в объекте нет ничего динамичного. Объект, который здесь определен, статически типизирован и даже неизменен. Теперь, если это подходит для ваших нужд, это здорово, но если вы действительно хотите, что вы просили в вопросе, то это не так. – Servy
Спасибо, @Servy. Я ценю ваш ответ. Однако меня смущает в отношении вашего комментария, что подход @ d_r_w по-прежнему позволяет мне добавлять динамические свойства к объекту. Например, 'foreach (динамический элемент в listOfFoo {item.someNewProperty =" bar "}' отлично работает. Что мне не хватает? –