Это своего рода теоретический вопрос,
Я искал чужой код (ниже), и мое простое решение состояло в том, чтобы создать экземпляр коллекции вне linq, но я могу предположить, что будут случаи, когда я захочу создать экземпляры объектов внутри запроса, и, возможно, только при выборе элементов.
Вот упрощенный пример того, как это делалось (плохо).
var pods = (from n in ids
where new Node(Convert.ToInt32(n)).HasValue("propertyName")
select new
{
Id = Convert.ToInt32(n),
Url = new Node(Convert.ToInt32(n)).Url,
Name = new Node(Convert.ToInt32(n)).Title()
}).ToList();
Не имеет значения Примечание: в этом случае конструктор Node получает данные из кэша памяти.
Как улучшить этот пример, чтобы каждый экземпляр создавался только один раз с помощью linq?
Приветствия.
Мюррей.