Страницы

Поиск по вопросам

среда, 17 октября 2018 г.

Как сохранить переменные анонимного типа в к коллекцию?

Как сохранить переменные анонимного типа в к коллекцию?


Ответ

Зависит от того, что дальше предполагается делать с коллекцией.
Если коллекция - объект временный, то можно вынести работу с ней в обобщенный метод (разумеется, сама коллекция также будет иметь снаружи анонимный тип):
static List CreateCollection(T item) { return new List { item }; }
static void AddToCollection(List list, T item) { list.Add(item); }
// ...
var c = CreateCollection(new { a = 5, b = "foo" }); AddToCollection(c, new { a = 6, b = "bar" });
Если коллекцию надо куда-то сохранить, можно попробовать найти базовый тип или написать обобщенный адаптер:
ICollection Collection { get; set; } IEnumerable AnotherCollection { get; set; }
// ...
Collection = CreateCollection(new { a = 5, b = "foo" }); AnotherCollection = CreateCollection(new { a = 6, b = "bar" });
Также всегда можно воспользоваться "тяжелой артиллерией" - dynamic (но будет тормозить, я предупредил).
Но если с анонимными классами слишком много проблем - возможно, стоит уже перейти к обычному классу?

Комментариев нет:

Отправить комментарий