猿问

更新根类对象后更新列表值

我有以下课程:


public class Class_A

{

    public string my_field { get; set; }

    public int id { get; set; } 

    // etc...

}


public class Class_B

{

    public string my_field { get; set; }

    public Class_A field_A { get; set; } 

    // etc...

}


public class Class_C

{

    public string my_field { get; set; }

    public Class_A field_A { get; set; } 

    // etc...

}


List<Class_A> list_A = new List<Class_A>(); //and then populate it

List<Class_B> list_B = new List<Class_B>(); //and then populate it

List<Class_C> list_C = new List<Class_C>(); //and then populate it

然后,当我更新某些元素时list_A,例如


Class_A old_a, new_a;

old_a = list_A.Where("some condition").FirstOrDefault();

new_a = new Class_A();//and then initialize it

list_A[list_A.FindIndex(x => x.Equals(old_a))] = new_a;

我需要将list_Band 的所有元素(list_C字段Class_A等于)old_a更新为new_a.


1. 最好的方法是什么?现在我有以下变体,但我认为它可能会更好:


list_B.Where(x => x.Class_A.Equals(old_a)).ForEach(x => x.Class_A = new_a);

2. 如果我有此代码,更新所有值的最佳方法是什么?


public class Class_D

{

    public string my_field { get; set; }

    public List<Class_A> list_A { get; set; } 

    // etc...

}


List<Class_D> list_D = new List<Class_D>(); //and then populate it


暮色呼如
浏览 188回答 1
1回答

眼眸繁星

看看ObservableCollection 和 Item PropertyChanged当 Class_B 和 Class_C 可以接收时,您可以从 list_A 中创建一个可观察的集合。
随时随地看视频慕课网APP
我要回答