gpt4 book ai didi

c# - 当列表中的一项发生变化时,我希望不同列表中的相同项目也进行更新

转载 作者:太空宇宙 更新时间:2023-11-03 20:07:15 24 4
gpt4 key购买 nike

我是徒手输入的,所以请原谅我的错别字。感觉像这样制作一个简单的类是表达我在实际项目中想要完成的事情的最简单方法......无论如何

如果我编辑一个集合/列表 (Collection_A) 中的项目,我该如何做到它也会同时反射(reflect)不同类 (Collection_B) 的集合/列表中的更改?

现在我会这样做的方法是为相同的名称和品种迭代 Collection_B.. 如果是这样,将其替换为 Collection_A 中的内容...

我觉得可能有一个更优雅的解决方案来解决这个问题,我完全错过了一些简单的东西..或者我很迟钝,我的解决方案可能是最好的解决方案。

我只是想“提高”我的效率和编程技术..谢谢

public class Dog
{
public string name;
public string breed;
}

public class DogList
{
public string listName;
public static ObservableCollection<Dog> Collection_B;
}

public static ObservableCollection<Dog> Collection_A;


Collection_A.Add(new Dog("Coco", "Chihuahua"));
Collection_A.Add(new Dog("Bubba", "Bulldog"));

DogList.Collection_B.Add(Collection_A[0]);
DogList.Collection_B.Add(Collection_B[0]);


Collection_A[0] = new Dog("Coco Moco", "Chuhuahua") //how can i get this to reflect in Collection_B simultaneously?

最佳答案

如果两个集合中的对象都是引用类型(例如 class 而不是 struct ),并且相同的实例被添加到两个集合中,那么这些集合就有一个 < em>对同一对象实例的引用。在任何一个地方所做的更改都会自动反射(reflect)在另一个地方。

但是,如果您用另一个对象实例替换一个集合中的对象实例,另一个集合将不知道:它仍然持有对原始对象的引用。要解决这个问题,您需要使用观察者模式

根据您的集合的语义和您的要求,您可以

关于c# - 当列表中的一项发生变化时,我希望不同列表中的相同项目也进行更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22362295/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com