は、次の点を考慮ObservableCollection.Contains()は正常に動作しない
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
}
}
}
なぜそれがListView
にx = "a", y = "1"
を追加しますか?
ObservableCollection
をList
またはCollection
に変更すると、同じことが行われます。
私はおそらくすべての値を繰り返し、それらが等しいかどうかをチェックします。しかし、私はC#プログラマーではないので、もっと簡単な方法があるかもしれません。 –