2015年06月10日

LINQ to Objectサンプル(10): 項目間を任意の文字列でつなぐ

  
配列等に格納されている値を文字列に変換し、”-“でつなぐコードです。

下記の例では、

“123-345-567-789″

が表示されます。

■ループを使ったコード
int[] nums = new int[] { 123, 345, 567, 789 };
string s = nums[0].ToString();
for (int i = 1; i < nums.Length; i++)
    s += "-" + nums[i].ToString();
Console.WriteLine(s);


■LINQを使ったコード
int[] nums = new int[] { 123, 345, 567, 789 };
string s = nums.Select(n => n.ToString())
               .Aggregate((t, e) => t + "-" + e);
Console.WriteLine(s);

Aggregateメソッドは、とっつきにくいメソッドですが、いろんな場面で利用できる強力なメソッドです。
Sum, Average, Min, Max などを使ったサンプルも Aggreagetを使って書き換えることができます。 興味のある方はチャレンジしてください。

LINQとは関係ないですが、String.Join使えば、いいんじゃないのという意見も出そうなので、String.Join 使った例も掲載します。

int[] nums = new int[] { 123, 345, 567, 789 };
string s = string.Join("-", nums);
Console.WriteLine(s);



 

この記事へのトラックバックURL

http://trackback.blogsys.jp/livedoor/gushwell/52422652