2015年07月22日

LINQ to Objectサンプル(22): 2種類の配列を対として利用する

  
2つの配列があり、それぞれの要素は同じインデックスでなんらかの結びつけがあるものとします。 この2つの配列から、別の配列を作り出す例です。

ここでは、日本語の曜日と、英語の曜日表記の2つの配列があり、それを 一つにして、"月(MON)","火(TUE)", ... という配列を作り出しています。


■ループを使ったコード
var list1 = new [] { "月","火","水","木","金","土","日"};
var list2 = new[] { "MON", "TUE", "WED", "THU", "FRI", "SUT", "SUN" };
var list3 = new List<string>();
for (int i = 0; i < list1.Length; i++) {
    list3.Add(string.Format("{0}({1})", list1[i], list2[i]));
}
list3.ForEach(Console.WriteLine);


■LINQを使ったコード
var list1 = new[] { "月", "火", "水", "木", "金", "土", "日" };
var list2 = new[] { "MON", "TUE", "WED", "THU", "FRI", "SUT", "SUN" };
var list3 = list1.Zip(list2, (s1, s2) => string.Format("{0}({1})", s1, s2));
list3.ToList().ForEach(Console.WriteLine);

Zip拡張メソッドを使うことで、実現しています。



 

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

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