SelectMany、Zip

  • 80
  • 0
  • 2020-01-01

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