將整數數組轉換爲內聯元素的最簡單方法是什麼?我在想像一個執行轉換的匿名函數。將數組轉換爲內聯字符串
var array = new int[] { 1, 2 }
var s = string.Format("{0}",
new []
{ /*inline transform array into the string "1, 2"*/ });
將整數數組轉換爲內聯元素的最簡單方法是什麼?我在想像一個執行轉換的匿名函數。將數組轉換爲內聯字符串
var array = new int[] { 1, 2 }
var s = string.Format("{0}",
new []
{ /*inline transform array into the string "1, 2"*/ });
使用string.Join
。在.NET 3.5及更早版本中,您需要首先轉換爲字符串數組;在.NET 4中,有一個過載需要IEnumerable<T>
。所以,這取決於你的版本:
.NET 2.0或3.0/C#2:
string s = string.Join(", ",
Array.ConvertAll(delegate(int x) { return x.ToString(); });
.NET 2.0或3.0/C#3:
string s = string.Join(", ", Array.ConvertAll(x => x.ToString());
.NET 3.5/C#3:
string s = string.Join(", ", array.Select(x => x.ToString()).ToArray());
(或者如果您願意,可以使用可與.NET 2.0一起使用的版本)。
.NET 4:
string s = string.Join(", ", array);
(我沒見過,今天之前!)
用的string.join,對於.NET 4.0:
var s = String.Join(", ",array);
該作品因爲String.Join現在有一個需要IEnumerable的過載<T>,
爲3.5,可以使用
var s = String.Join(", ", array.Select(n => n.ToString()).ToArray());
對於以前的.NET版本,請參閱喬恩長柄水杓更完整的答案。
如果你在.NET 4.0:
var array = new int[] { 1, 2 };
var s = String.Join(", ", array);
ReSharper的給了我這樣的:
public static string EnumerateToString(this int[] a, string separator)
{
return a.Aggregate("", (current, i) => current + i.ToString(separator));
}
這可能會變得非常慢,因爲它會在每次迭代時複製字符串。基本上你會以O(n^2)的複雜性結束。 – 2010-07-13 10:43:56
@喬恩 - 會不會它使用'加入(字符串,IEnumerable )'超負荷? –
2010-07-13 10:41:41
+1 - 我沒有想到會工作。 Doh ...沒有看到IEnumerable過載(.NET 4新增功能)。 –
2010-07-13 10:41:54
@Jon謝謝,我編輯回到原始的答案;在我用我的可信編譯器確認它之後:-) – driis 2010-07-13 10:52:36