C# 林敏问题/错误

C# 林敏问题/错误,c#,linq,C#,Linq,有人想知道执行结束时currentIndex是什么吗 int[] ints = new int[] { -1, 12, 26, 41, 52, -1, -1 }; int minInt = ints.Min(); 是110。有人知道为什么吗 将其包装为下面的主函数 using System; using System.Linq; class Sample { public static void Main() { int[] ints = new i

有人想知道执行结束时currentIndex是什么吗

        int[] ints = new int[] { -1, 12, 26, 41, 52, -1, -1 };
        int minInt = ints.Min();
是110。有人知道为什么吗

将其包装为下面的主函数

using System;
using System.Linq;
class Sample {
public static void Main() 
{

    int[] ints = new int[] { -1, 12, 26, 41, 52, -1, -1 };
    int minInt = ints.Min();
    Console.WriteLine(minInt);
 }
}

编辑:我将变量名从currentIndex更改为minInt。这是我正在调试的一个函数的复制和粘贴,在这种情况下是有意义的,但在这里就不那么重要了。

应该是-1。此外,我认为“currentIndex”变量命名有误导性。它实际上是数组中的最小值,而不是当前索引。例如,如果在该数组中添加-2,则上面示例中的变量currentIndex将是-2。

对于注释来说太长了,但下面是我得到的结果

C:\>copy con t.cs
using System;
using System.Linq;
class Sample {
public static void Main()
{

    int[] ints = new int[] { -1, 12, 26, 41, 52, -1, -1 };
    int minInt = ints.Min();
    Console.WriteLine(minInt);
 }
}
^Z
        1 file(s) copied.

C:\>csc t.cs
Microsoft (R) Visual C# 2008 Compiler version 3.5.30729.4926
for Microsoft (R) .NET Framework version 3.5
Copyright (C) Microsoft Corporation. All rights reserved.


C:\>t
-1

C:\>

你能提供一个完整的小程序来演示这种行为吗?这还不足以进行诊断。这应该是所需的一切。Min不是索引,而是列表中最小的项。你怎么能拿到110,我可不知道。此外,您的代码不会编译。缺少
使用System.Linq?是的,它缺少名称空间。我曾经花了几个小时试图弄清楚为什么某个特定的VBScript程序会产生疯狂的结果。然后我意识到某个奇怪的人定义了一个名为“InStr”的局部变量,它隐藏着同名函数。你有点疯狂。不要忽视那些疯狂的东西;追根究底。否则,你只会在代码中留下一颗定时炸弹,让其他人在将来引爆。对,变量名在这种上下文中没有任何意义,它是一个复制粘贴。但这是110,这至少让我感到困惑。你可能有另一个扩展方法叫
Min
?没有。我不知道发生了什么。寻找另一个函数叫
Min
:)我怀疑你有另一个扩展方法比Linq方法更受欢迎。我看了看,甚至试着进入这个函数,没有骰子:(我认为它必须在函数中使用与类的成员变量同名的局部变量。我将解决这个问题。