Ich habe zwei Instanzen des Typs IEnumerable
wie folgt.Ermitteln eines Schnittpunkts von zwei IEnumerables mit LINQ
IEnumerable<Type1> type1 = ...;
IEnumerable<Type2> type2 = ...;
Sowohl Type1
und Type2
enthalten Mitglied common
genannt, so dass, obwohl sie von anderen Klasse sind, können wir immer noch sie so beziehen.
type1[0].common == type2[4].common
Ich versuche, jene Elemente der type1
, die keinen entsprechenden common
Wert in type2
müssen Filter entfernt und ein Wörterbuch auf einem Wert von jeweils bezogen erstellen. Im Moment mache ich das mit der folgenden Doppelschleife.
Dictionary<String, String> intersection = ...;
foreach (Type1 t1 in type1)
foreach(Type2 t2 in type2)
if (t1.common == t2.common)
intersection.Add(t1.Id, t2.Value);
Jetzt habe ich mit LINQ versucht, aber alle .Where
, .Select
und .ForEach
gab mir nur Kopfschmerzen. Gibt es eine Möglichkeit, die gleiche Operation mit LINQ sauber durchzuführen?
LINQ wird sowieso nur aufzählen. Haben Sie Leistungsprobleme? – Paparazzi
Nein. Aber die anderen Programmierer lachen über mich. :(Sie sagen, ich bin zu müde, um den Code zu finden, und das ist nicht möglich. Während ich das erste zugeben kann, weigere ich mich, dem letzteren zuzustimmen. :) –
Also was passiert, wenn Sie einen t1 haben, der * zwei * t2s hat dieses Spiel? –