2017-04-25 87 views
-3

了.txt文件:C#爲什麼最小值和最大值的方法不能正常工作

pasaulyje jau nuo XVI a. pradžios. Lorem Ipsu 
atsitiktine tvarka išdėliojo raides aaaaaaaaaaaaaa aaaaaaaa aaa 
atspaudų prese ir 
qqqqqqqqqqqqqqqqqqqqqqqqqqqq 

,這裏是我的代碼片段:

string max = tekstas.Max(); 
string min = tekstas.Min(); 

Console.WriteLine(max); 
Console.WriteLine(min); 

爲什麼MAX()方法給是我的最後一個(因爲它會是最短的,實際上不是),Min()方法給出第二行,這將是正確的如果我問最大的方法...所以我做錯了什麼?

+3

什麼類型是可變的tekstas? –

+1

你如何定義「最大」和「最小」。我想它使用字母順序爲第一個字母。 – xhg

+0

@earloc,字符串類型 – Lucas

回答

1

字符串上的最小值和最大值使用字母順序排序...所以這種行爲是預期的。

如果你想得到最大和最小的長度,你可以做一些事情;

string maxLength = tekstas.Select(s => s.Length).Max(); 
string minLength = tekstas.Select(s => s.Length).Min(); 

string maxString = tekstas.First(s => s.Length == maxLength); 
string minString = tekstas.First(s => s.Length == minLength); 

Console.WriteLine(maxString); 
Console.WriteLine(minString); 
+0

感謝隊友,終於得到了答案,所以最小和最大的方法,我應該使用更好的時候,在線尋找單詞?甚至字母的文字?但不是最長的線? – Lucas

+0

最小值和最大值可以處理任何您調用它們的數據類型,因此如果您使用字符串(即文本或文本的一行),它將按字母順序排序並返回最高(最接近Z)或最低(最接近一個)。如果你使用一個數字(比如字符串的長度),那麼它將返回最低/最高數字。然後您需要找到具有該長度的字符串,因爲它返回的數字(長度) – Milney

+0

欣賞努力:)將按正確的答案,當我可以 – Lucas

2

如果Length是最低或最高的標準,你可以做

var max = tekstas.Max(x => x.Length); 
var min = tekstas.Min(x => x.Length); 

var maxLengthString = tekstas.Where(x => x.Length == max); 
var minLengthString = tekstas.Where(x => x.Length == min); 

雖然你可以做一些重構它希望得到第一次出現,你需要FirstOrDefault

+0

是的,長度是標準,謝謝回答 – Lucas

+0

這樣會返回大小,不是字符串本身,wouldn是嗎? – Pikoh

+0

@Pikoh:謝謝你。 –

相關問題