2


0

linq min質問/バグ

実行の最後に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に変更しました。 これは、私がデバッグしている関数からのコピーアンドペーストであり、そのコンテキストでは意味がありましたが、ここではあまり意味がありませんでした。

2 Answer


3


コメントするには長すぎますが、ここに私が得たものがあります。

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:\>


1


-1でなければなりません。 また、「currentIndex」変数の命名は誤解を招くと思います。 実際には、配列内の最小値であり、現在のインデックスではありません。 たとえば、その配列に-2を追加すると、上記の例の変数currentIndexは-2になります。