【发布时间】:2020-11-14 22:31:44
【问题描述】:
我在 .net core 3.1 控制台应用程序中编写了以下代码。它没有按预期工作。
var arr = new List<int>(Enumerable.Range(1, 10));
var last5 = arr.TakeLast(5);
foreach (var i in last5)
Console.WriteLine(i); //writing 6 7 8 9 10
arr.AddRange(new[] { 11, 12, 13, 14, 15 });
foreach (var i in last5)
Console.WriteLine(i); //writing 6 7 8 9 10 11
如果我将项目定位到 .net core 2.2,它会按预期工作 (6 7 8 9 10 11 12 13 14 15)。
我暂时使用for循环来解决这个问题。
为什么在 .net core 2.2 和 3.1 中给出不同的值?
【问题讨论】:
-
你期待什么结果?
-
这个问题很清楚。它在 2.2 中有效,但在 3.1 中无效
-
我不会说,这是您预期的结果。但是,您可以检查
TakeLastEnumerableFactory<TSource>并检查会发生什么 -
我的问题很简单。为什么它在 .net core 2.2 和 3.1 中给出不同的值
标签: c# linq .net-core .net-core-3.0 .net-core-3.1