Si consideri il seguente:ObservableCollection.Contains() non funziona correttamente
class Bind
{
public string x { get; set; }
public string y { get; set; }
}
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
ObservableCollection<Bind> cX = new ObservableCollection<Bind>();
ObservableCollection<Bind> cY = new ObservableCollection<Bind>();
cX.Add(new Bind { x = "a", y = "1" });
cX.Add(new Bind { x = "b", y = "2" });
cY.Add(new Bind { x = "a", y = "1" });
foreach (var i in cX)
{
if (!cY.Contains(i)) { lv.Items.Add(i); } //lv is a ListView control
}
}
}
Perché si aggiunge x = "a", y = "1"
al ListView
?
Se cambio ObservableCollection
a List
o Collection
, fa lo stesso.
Probabilmente eseguirò l'iterazione di tutti i valori e verificherò se sono uguali. Ma io non sono un programmatore C#, quindi potrebbe esserci un modo più semplice. –