2 Stimmen

LINQ, Verknüpfung der Ergebnisse von zwei Methoden

Ich möchte eine flache Ergebnismenge aus den Ergebnissen von zwei Methoden erstellen, wobei die Ergebnisse der ersten Methode die Argumente für die zweite Methode sind.

Zum Beispiel gibt Methode 1 zurück 1,2,3 und ich möchte jeden int in die Methode 2 einspeisen, die einfach Folgendes zurückgibt 4,5,6 jedes Mal.

Ich erwarte also eine Ergebnismenge wie 1:4, 1:5, 1:6, 2:4, 2:5, 2:6, 3:4, 3:5, 3:6

Wenn möglich, möchte ich dies in einer einzigen LINQ-Abfrage (pref c#) zu tun. Ich hoffe, diese Erklärung ist klar und jemand kann mir helfen.

EDIT。

Ich hätte nicht fragen sollen. Das ist ganz einfach. Für alle anderen, die es brauchen:

int[] aList = new int[] { 1, 2, 3 };

var enumerable = from a in aList
                 from b in GetResult(a)
                 select new { x = a, y = b };

2voto

Scott Weinstein Punkte 18520

Klingt, als würden Sie nach SelectMany suchen.

Func<IEnumerable<int>> method2 = () => new [] {4,5,6};
(new [] {1,2,3})
    .SelectMany(m1Arg => method2().Select(m2arg => string.Format("{0}:{1}",m1Arg,m2arg)));

In der Abfragesyntax sind es zwei *von*s wie in

var q = from a in List
        from b in List2
        select a,b...

0voto

Ken Pespisa Punkte 21474

LINQ-Ausdrücke verwenden

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

}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X