Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.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
LINQ,两种方法的连接结果_Linq - Fatal编程技术网

LINQ,两种方法的连接结果

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返回
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);
    }

}