Я выполнил следующий код с C# 3.5 и 4.0. Результаты совершенно разные.Разница в результатах запроса LINQ в .NET 3.5 и 4.5
static void Main()
{
int[] numbers = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
List<IEnumerable<int>> results = new List<IEnumerable<int>>();
foreach (var num in numbers)
{
results.Add(numbers.Where(item => item > num));
}
foreach (var r in results)
{
Console.WriteLine("{0}", r.Count());
}
}
с Microsoft (R) Visual C# 2008 Compiler версии 3.5.30729.5420 выход 0 0 0 0 0 0 0 0 0 0
.
Но с Microsoft (R) Visual C# компилятор версии 4.0.30319.17929 вывод 9 8 7 6 5 4 3 2 1 0
.
У меня есть слабое представление о том, что это из-за отложенного исполнения или ленивой оценки, но не ясно поняли, как она несет ответственность за разные выходы здесь.
Исправление: К сожалению это .NET 3.5 и 4.5, а также добавлены версии компилятора Пожалуйста, поясните.
Я получаю тот же результат в 3.5 и 4.0, {9 8 7 ...}, вы уверены, что не делаете что-то другое? –
Это дает мне те же результаты .... – Habib
Я считаю, что это изменение произошло с 4.5, а не 4.0. –