IEnumerable
- это запрос, который оценивается лениво. Но, видимо, мое понимание немного испорчено. Я ожидаю, что следующие работы:Изменения в IEnumerable не поддерживаются между запросами
// e.Result is JSON from a server
JObject data = JObject.Parse(e.Result);
JsonSerializer serializer = new JsonSerializer();
// LINQ query to transform the JSON into Story objects
var stories = data["nodes"].Select(
obj => obj["node"]).Select(
storyData => storyOfJson(serializer, storyData));
// set a value on each story returned by the query
foreach (Story story in stories)
{
story.Vid = vid;
}
// run through the query again, making sure the value was actually set
foreach (Story story in stories)
{
// FAILS - story.VID is 0
Debug.Assert(story.Vid == vid);
}
Что я не понимаю здесь? Как я могу изменить результаты возврата этого запроса?
Привет, в чем ошибка? Где инициализируется vid? – LesterDove
«IEnumerable» - это просто последовательность элементов (таких как массив). Методы LINQ и другие методы итератора возвращают реализацию IEnumerable , которая оценивается лениво. –
SLaks