Ich versuche, zwei Listen mit Linq oder Lambda-Ausdruck zu vergleichen. Ich möchte keine Art von Schleifen verwenden.Wie vergleicht man einen Listentyp von Objekt mit Listentyp Int
wenn ich beide des Listentypen ganzzahliger habe, würde ich diesen Ausdruck verwendet
Beispiel 1
List<int> tlistA = new List<int>();
tlistA.AddRange(new int[] { 1, 2, 3, 4, 5 });
List<int> tlistB = new List<int>();
tlistB.AddRange(new int[] { 3, 5, 6, 7, 8 });
Console.WriteLine((from tla in tlistA
where tlistB.Contains(tla)
select tla).Any());
Wenn ich jedoch beide der Liste Art des Gegenstandes habe, würde diese Einstellung sinn
AusdruckBeispiel 2
class la{public int v { get; set; }}
class lb{public int v { get; set; }}
static void Main(string[] args)
{
List<la> listA = new List<la>
{
new la() { v = 1 },
new la() { v = 2 },
new la() { v = 3 },
new la() { v = 4 },
new la() { v = 5 },
};
List<lb> listB = new List<lb>
{
new lb() { v = 3 },
new lb() { v = 5 },
new lb() { v = 6 },
new lb() { v = 7 },
new lb() { v = 8 },
};
Console.WriteLine(listB
.Where(b =>
listA
.Any(a => a.v == b.v))
.Any());
}
Aber meine Frage ist, wie ich w Es sollte ein List-Typ von Integer mit einem anderen List-Typ von Objekt verglichen werden, das eine Integer-Eigenschaft hat.
um meine Frage klar zu machen "Wie würde ich TlistA von Beispiel 1 mit ListB von Beispiel 2 vergleichen?"
Dank viel
warum spielt es keine Rolle, ob Sie eine beliebige Form einer Schleife verwenden
Contains
-Ansatz -So könnten Sie auch Ihre (langsam)
Where
verwenden. Es kann nicht vernünftig sein, zu erwarten, dass man zwei Listen vergleichen kann, ohne sie einzeln aufzählen zu können (was eine Schleife erfordert, selbst wenn sie mit Hilfe von linq abstrahiert wird). können Sie auch definieren, was es bedeutet, zwei Listen zu vergleichen? was genau vergleichen Sie und was erwarten Sie als Antwort? –