2011-12-09 78 views
4

在JavaScript中,如果我有var arr = ["a", "b", "c"]我可以說arr.join(',');得到一個包含逗號分隔列表值的字符串。在Linq中有直接的方法嗎?Linq等同於JavaScript的連接?

我知道我可以使用AggregatepluginNames.Aggregate((s1, s2) => s1 + ", " + s2);但這似乎有點笨重。有更清潔的東西嗎?一些假設像

pluginNames.JavaScriptJoin(", "); 

回答

15

嘗試

string.Join(", ", pluginNames); 
5

您可以使用string.Join()

string result = string.Join(",", pluginNames); 
14

只需使用String.Join - 沒有LINQ的一部分,只是框架:

string joined = string.Join(", ", array); 

如果這是真的對你來說太笨重,你可以寫一個擴展方法:

public static string JoinStrings(this string[] bits, string separator) 
{ 
    return string.Join(separator, bits); 
} 

需要注意的是.NET 4對string.Join更多的重載,包括採取序列(而不僅僅是陣列),而不僅僅是字符串。

我建議你不要只使用名稱Join,因爲這看起來像你正在做一個內部連接。

+0

不,不,一點都不笨 - string.join會正常工作。我想知道我以前的工作中的新開發人員在考慮看看所有對'Aggregate()'的愚蠢調用:) –

+0

我看到你已經被封頂;對不起,那些+8對你沒有多大幫助 - 希望你不會感到興奮我把支票交給了低分的傢伙:) –