jestem po prostu staramy się zwróci true jeśli lista zawiera którekolwiek z nazwa/wartość z listy2:Sprawdź, czy jedna lista zawiera żadnych elementów z innego
To byłaby moja konstrukcja:
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>();
ten należy zwrócić prawdziwe:
List1.Add(new TStockFilterAttributes { Name = "Foo", Value = "Bar" });
List2.Add(new TStockFilterAttributes { Name = "Foo", Value = "Bar" });
ale to return false bo Nazwa & & Wartość nie pasują:
List1.Add(new TStockFilterAttributes { Name = "Foo", Value = "Bar" });
List2.Add(new TStockFilterAttributes { Name = "Foo", Value = "Foo" });
Każda lista może zawiera wiele różnych wartości i po prostu trzeba wiedzieć, czy ktoś z listy1 dopasowuje dowolny jeden w lista2.
Próbowałem, używając:
return List1.Intersect(List2).Any();
ale wydaje się to return false we wszystkich przypadkach, jestem przy założeniu, to dlatego, że jestem trzyma klasę w liście zamiast prostego INT/ciąg?
'Intersect' działa na odnośnikach domyślnie, ponieważ tworzenie nowego obiektu za każdym razem, trzeba napisać własny [' IEqualityComparer '] (http://msdn.microsoft.com /en-us/library/ms132151.aspx) –