String.Join メソッド

個人的に,C# 3.0 になってから使用率が跳ね上がったメソッド――String.Join.LINQ 由来の Extension Method に混ざるから余計目立つのかも.
Extension Method 版を作るとしたらこんな感じ?

public static class StrUtil
{
    public static string Join(this string[] source, string separator)
    {
        if (source == null) throw new ArgumentNullException("source");
        return string.Join(separator, source);
    }
    public static string Join(this IEnumerable<string> source, string separator)
    {
        if (source == null) throw new ArgumentNullException("source");
        return string.Join(separator, source.ToArray());
    }
}

class Program
{
    static void Main(string[] args)
    {
        var msg1 = Enumerable.Range(0, 10).Select(i => i.ToString()).ToArray().Join(",");
        var msg2 = Enumerable.Range(0, 10).Select(i => i.ToString()).Join(",");

        Console.WriteLine(msg1);
        Console.WriteLine(msg2);
    }
}

そういえば最近 StringBuilder クラス を使ってない.