LinqPad test SelectMany、Zip
void Main()
{
string[] alphabets = new string[] { "a", "b", "c", "d" };
string[] numbers = new string[] { "1", "2", "3" };
alphabets.SelectMany(a => numbers.Select(n => string.Format("{0}-{1}", a, n))).Dump();
//alphabets.SelectMany(a => numbers, (a, n) => string.Format("{0}-{1}", a, n)).Dump(); //SelectMany多載,結果相同
alphabets.Zip(numbers, (a, n) => string.Format("{0}-{1}", a, n)).Dump();
}
不下任何條件限制的SelectMany,類似於sql cross join效果
Zip則是將index相同的元素組成對(不相符的不處理),以sql理解類似 inner join by rownumber