2010-03-14 73 views
2

任何關心猜測什麼currentIndex是在執行結束?linq min問題/ bug

 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改變變量名內政部。它是我正在調試的一個函數的副本和粘貼,這在上下文中是有意義的,但在這裏沒有太多。

+1

你能提供一個小而完整的程序來演示行爲嗎?這還不足以做出診斷。 – 2010-03-14 07:55:53

+0

這應該是需要的一切。 – jdelator 2010-03-14 07:56:31

+1

Min不是索引,它是列表中的最小項。你如何得到110,雖然超過了我。另外,你的代碼不能編譯。缺少'使用System.Linq;'? – leppie 2010-03-14 08:02:26

回答

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

我得到相同的結果。我不知道爲什麼我得到這個在我的功能... – jdelator 2010-03-14 08:17:02

+1

尋找另一個函數稱爲'Min' :)我懷疑你有另一種擴展方法首選Linq之一。 – leppie 2010-03-14 08:18:44

+0

我看了,甚至試圖進入功能,沒有骰子:( – jdelator 2010-03-14 08:33:31

1

它應該是-1。另外,我認爲「currentIndex」變量的命名是誤導性的。它實際上是數組中的最小值,而不是當前的索引。例如,如果在該數組中添加-2,則上例中的變量currentIndex將爲-2。

+0

在這種情況下,變量名稱沒有意義,它是一個複製和粘貼。儘管如此,這又回到了110,這至少令我感到困惑。 – jdelator 2010-03-14 08:06:30

+0

你可能有另外一種叫做'Min'的擴展方法嗎? – leppie 2010-03-14 08:08:06

+0

不,我不確定發生了什麼事。 – jdelator 2010-03-14 08:17:27