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

时间:2018-08-04 06:43:44

标签: c# list linq oop

我有以下课程:

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_B等于list_C的{​​{1}}和Class_A的所有元素更新为old_a

1。做这个的最好方式是什么?现在,我有以下变体,但我认为这可能会更好:

new_a

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

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

1 个答案:

答案 0 :(得分:1)

看看ObservableCollection and Item PropertyChanged

当Class_B和Class_C可以接收到时,您可以从list_A中创建一个可观察的集合。