LINQ,两种方法的连接结果
我想从两个方法的结果创建一个平面结果集,其中第一个方法的结果是第二个方法的参数 例如,方法1返回LINQ,两种方法的连接结果,linq,Linq,我想从两个方法的结果创建一个平面结果集,其中第一个方法的结果是第二个方法的参数 例如,方法1返回1,2,3,我想将每个int输入方法2中,方法2每次只返回4,5,6 因此,我希望返回一个结果集,如1:4、1:5、1:6、2:4、2:5、2:6、3:4、3:5、3:6 如果可能,我希望在单个LINQ查询(pref c#)中执行此操作。 我希望这个解释清楚,有人能帮助我 编辑: 我不该问的。这很容易。对于任何其他需要它的人: int[] aList = new int[] { 1, 2, 3 };
1,2,3
,我想将每个int输入方法2中,方法2每次只返回4,5,6
因此,我希望返回一个结果集,如1:4、1:5、1:6、2:4、2:5、2:6、3:4、3:5、3:6
如果可能,我希望在单个LINQ查询(pref c#)中执行此操作。
我希望这个解释清楚,有人能帮助我
编辑:
我不该问的。这很容易。对于任何其他需要它的人:
int[] aList = new int[] { 1, 2, 3 };
var enumerable = from a in aList
from b in GetResult(a)
select new { x = a, y = b };
听起来你在找SelectMany
Func<IEnumerable<int>> method2 = () => new [] {4,5,6};
(new [] {1,2,3})
.SelectMany(m1Arg => method2().Select(m2arg => string.Format("{0}:{1}",m1Arg,m2arg)));
使用LINQ表达式
void Main()
{
var method1 = new[] {1,2,3};
var method2 = new[] {4,5,6};
var res = from m in method1
from m2 in method2
select String.Format("{0}:{1}", m, m2);
foreach (var x in res) {
Console.Out.WriteLine(x);
}
}
哇,通常我更喜欢显式语法,但这似乎是一种查询语法更清晰的情况。同意,对于Join和SelectMany的Join情况,查询语法更简单,而不是在问题中回答您的问题,您应该发布自己的答案,并在两天内接受,或者接受别人已经发布的答案。
void Main()
{
var method1 = new[] {1,2,3};
var method2 = new[] {4,5,6};
var res = from m in method1
from m2 in method2
select String.Format("{0}:{1}", m, m2);
foreach (var x in res) {
Console.Out.WriteLine(x);
}
}