Sto solo cercando di ritornare vero se una lista contiene qualsiasi del nome/valore da lista2:Controllare se una lista contiene tutti gli elementi di un altro
Questa sarebbe la mia struttura:
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>();
Questo dovrebbe restituire true:
List1.Add(new TStockFilterAttributes { Name = "Foo", Value = "Bar" });
List2.Add(new TStockFilterAttributes { Name = "Foo", Value = "Bar" });
Ma questo sarebbe tornato falso perché Nome & & Valore non corrispondono:
List1.Add(new TStockFilterAttributes { Name = "Foo", Value = "Bar" });
List2.Add(new TStockFilterAttributes { Name = "Foo", Value = "Foo" });
Ogni elenco potrebbe contenere molti valori diversi e ho solo bisogno di sapere se uno qualsiasi di Elenco1 corrisponde a uno in List2.
Ho provato con:
return List1.Intersect(List2).Any();
ma questo sembra restituire false in tutti i casi, io parto dal presupposto che questo è perché ho in mano una classe in List, piuttosto che una semplice int/string?
'Intersect' funziona su riferimenti per impostazione predefinita, in quanto si crea un nuovo oggetto ogni volta, che avrebbe dovuto scrivere il proprio [' IEqualityComparer '] (http://msdn.microsoft.com /en-us/library/ms132151.aspx) –