2013-11-15 35 views

回答

4

使用lambda表达式:

int[] a = new int[] { 1, 2 }; 
int[] b = new int[] { 3, 4 }; 
var c = a.SelectMany(i => b.Select(j => i * j)); 
9

使用SelectMany既生成笛卡尔积,又将两个值相乘。

var query = from x in first 
      from y in second 
      select x * y; 
+1

我不认为我会考虑使用lambda表达式的查询语法。 – GWB

+5

@GWB但他们*使用lambda表达式。你只是没有明确写出来。代码的字面意思完全等同于用方法语法写出来的代码;这仅仅是个人喜好的问题。 – Servy

0

如果你有你的第一个阵列称为第一和第二个所谓的第二,你可以做到这一点。

List<int> result = new List<int>(); 
first.ToList().ForEach(x => second.ToList().ForEach(y => result .Add(x * y)));