enthält ich nur true zurück, ich versuche, wenn eine Liste einen der Name/Wert von list2 enthält:Überprüfen Sie, ob eine Liste alle Elemente aus einem anderen
Das wäre meine Struktur sein:
public class TStockFilterAttributes
{
public String Name { get; set; }
public String Value { get; set; }
}
List<TStockFilterAttributes> List1 = new List<TStockFilterAttributes>();
List<TStockFilterAttributes> List2 = new List<TStockFilterAttributes>();
Diese sollte true zurück:
List1.Add(new TStockFilterAttributes { Name = "Foo", Value = "Bar" });
List2.Add(new TStockFilterAttributes { Name = "Foo", Value = "Bar" });
Aber diese falsche zurückkehren würde, weil Namen & & Wert nicht übereinstimmen:
List1.Add(new TStockFilterAttributes { Name = "Foo", Value = "Bar" });
List2.Add(new TStockFilterAttributes { Name = "Foo", Value = "Foo" });
Jede Liste könnte viele verschiedene Werte enthalten und ich muss nur wissen, ob irgendeine von Liste1 mit einer in Liste2 übereinstimmt.
Ich habe versucht mit:
return List1.Intersect(List2).Any();
aber dies scheint in allen Fällen false zurück, ich gehe davon aus das ist, weil ich eine Klasse in List halte eher als eine einfache int/string?
'Intersect' arbeitet auf Referenzen standardmäßig, da Sie ein neues Objekt jedes Mal erstellen, würden Sie Ihre eigenen schreiben [' IEqualityComparer '] (http://msdn.microsoft.com /en-us/library/ms132151.aspx) –