Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在C中使用lambda表达式将两个序列相乘?_C#_.net_Linq_Lambda - Fatal编程技术网

C# 如何在C中使用lambda表达式将两个序列相乘?

C# 如何在C中使用lambda表达式将两个序列相乘?,c#,.net,linq,lambda,C#,.net,Linq,Lambda,如何在C中使用lambda表达式将两个序列相乘?例如,如果我有{1,2}和{3,4},我希望结果是{3,4,6,8}。使用SelectMany生成笛卡尔积并将两个值相乘 var query = from x in first from y in second select x * y; 使用lambda表达式: int[] a = new int[] { 1, 2 }; int[] b = new int[] { 3, 4 }; var c =

如何在C中使用lambda表达式将两个序列相乘?例如,如果我有{1,2}和{3,4},我希望结果是{3,4,6,8}。

使用SelectMany生成笛卡尔积并将两个值相乘

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

使用lambda表达式:

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

如果第一个数组名为first,第二个数组名为second,则可以执行此操作

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

我不认为我会把查询语法看作是使用lambda表达式。@ gWB,但是它们使用lambda表达式。你只是没有明确地写出来。代码字面上完全等同于用方法语法写出它;这只是个人喜好的问题。