我感興趣的是做這樣的事情(C#):使用循環在一行中設置int?
int sum = 0;
for (int i = 0; i < 5; i++)
sum += i;
但我想這樣做在同一行。例如:
int sum = (embedded loop)
有沒有辦法在一行上做到這一點?我正在尋找應用這個更復雜的字符串操作算法,所以我不能簡單地用算術公式替換循環。
我感興趣的是做這樣的事情(C#):使用循環在一行中設置int?
int sum = 0;
for (int i = 0; i < 5; i++)
sum += i;
但我想這樣做在同一行。例如:
int sum = (embedded loop)
有沒有辦法在一行上做到這一點?我正在尋找應用這個更復雜的字符串操作算法,所以我不能簡單地用算術公式替換循環。
所以要循環,並做一些在一條線?
首先,將它寫入一行不會讓它運行得更快。你仍然會循環,你仍然會是O(n)
。對於你的問題,你有特別的問題,你可以這樣做:
var sum = Enumerable.Range(0,5).Sum();
這基本上讓數字0,1,2 ...... 4的收集和總結他們。
更一般地說,既然你想做東西,你可以使用Aggregate
函數。例如:
var str = Enumerable.Range(0,5).Aggregate("",(p,c) => p + c); // Note: not efficient at all
將採取值0,1,... 4,做字符串連接與他們(使用一個字符串生成器效果會更好)給你的字符串。
編輯:
加入(」「)。我通過一個單詞列表嘗試循環,使每一個標題下,然後返回一個字符串[]它
在這種情況下,是這樣的:
var result = string.Join(" ", myListOfWords.Select(w => char.ToUpper(w[0]) + w.Substring(1)));
應該正常工作。
謝謝,這就是我一直在尋找的東西。我知道這聽起來很愚蠢,但這是一個挑戰,並不意味着高效。 –
如果你不介意「和」僅是在for循環,你可以做到這一點範圍:
for (int i = 0, sum = 0; i < 5; sum += i, ++i) { // do something }
有什麼原因嗎? – Amit
Sum = n *(n + 1)/ 2 – TNguyen
@ TPN1994有它的公式,它是*正確的解*,但你也可以做'var sum = Enumerable.Range(0,5).Sum() ;' –