但是,這段代碼測試正確我想知道有什麼是不正確的,因爲3嵌套SELECT()。有可能用2個嵌套的SELECT()重寫代碼?是否可以重寫代碼以減少選擇的數量?
var sums = Enumerable.Range(1, int.Parse(Console.ReadLine()))
.Select(x => Console.ReadLine())
.Select(y => y.Split(' ')
.Select(int.Parse).Sum());
但是,這段代碼測試正確我想知道有什麼是不正確的,因爲3嵌套SELECT()。有可能用2個嵌套的SELECT()重寫代碼?是否可以重寫代碼以減少選擇的數量?
var sums = Enumerable.Range(1, int.Parse(Console.ReadLine()))
.Select(x => Console.ReadLine())
.Select(y => y.Split(' ')
.Select(int.Parse).Sum());
您可以用斯普利特的ReadLine結合:
var sums = Enumerable.Range(1, int.Parse(Console.ReadLine()))
.Select(x => Console.ReadLine().Split(' ').Select(int.Parse).Sum());
您可以結合第一和第二
var sums = Enumerable.Range(1, int.Parse(Console.ReadLine()))
.Select(x => Console.ReadLine().Split(' ').Convert<Int64>().Sum());
如果你只需要總和(這是不是你目前的代碼正在做)
var sum = Enumerable.Range(1, int.Parse(Console.ReadLine()))
.SelectMany(x=>Console.ReadLine().Split(' ').Convert<Int64>())
.Sum()
你不必三個嵌套'選擇',你有兩個... –
如果你需要所有數字的總和,你可以結合其中的前兩個。 – vittore
_ [我可以在Stack Overflow上發佈關於**優化代碼**的問題嗎?....不,它不是最好的地方 - 雖然它是關於主題的,但是對於這樣的問題有更好的地方。您可以將代碼複製到代碼審查 - 但請確保閱讀他們的幫助中心,看看他們對一個好問題的期望是什麼](http://meta.stackoverflow.com/questions/261841/can-i-post-問題 - 關於優化的代碼上堆棧溢出)_。如果你的意圖是通過微妙的_sugar syntax_ – MickyD