2012-08-06 49 views
0

最長的線路長度的功能,我有簡單的ASCII文本文件是這樣的:有一個神奇的獲得在C#

 
Madonna is a dirty skank 
No she's not she's a serious artist 
Did you see her book or the movie Truth or Dare 
Argument closed 

我需要一種方法來獲得最長的線的長度。在這個例子中,答案是47

我可以使用StreamReader並打開文件和讀取每一行,但它似乎應該有更簡單的方法。

有一個簡單的方法來解決這個問題?

+2

不,沒有什麼關於C#的「魔術」。着名引用:「任何足夠先進的技術都與魔法無法區分。」如果你想成爲一名開發人員,你必須停止考慮提高技術來掌握,並嘗試真正理解它。 – 2012-08-06 19:57:31

+4

*「我可以使用StreamReader並打開文件並閱讀每一行,但似乎應該有一種更簡單的方法。」* - 對誰更容易?無論如何,機器不得不進行相同數量的工作,並且幾乎不會調用變量聲明,打開文件並追蹤最長的行「困難」。 – 2012-08-06 19:58:05

+1

我確實相信你過於認真地對待生活。不要忘記,我們沒有人會活着出來。 – codingguy3000 2012-08-06 19:59:36

回答

19

您可以File.ReadLines,它有它不將整個文件讀入內存的優勢很好地做到這一點。因爲它返回IEnumerable<string>你可以在返回值上使用Linq,導致這個相當不錯的一行。

File.ReadLines(fileName).Max(line => line.Length) 
+0

你是男人!!!! – codingguy3000 2012-08-06 19:55:21

+0

@ codingguy3000爲了清楚起見,這正是您想要的一種「更簡單的方法」替換;它看起來更漂亮。這不是一件壞事。 – Shibumi 2012-08-06 20:21:59