C# 保留csv字符串和字典的策略<;字符串,字符串>;始终同步
如果我有逗号分隔的列表字符串属性:C# 保留csv字符串和字典的策略<;字符串,字符串>;始终同步,c#,C#,如果我有逗号分隔的列表字符串属性: "age:123,name:john,last:doe" 和字典类型的另一个属性 我如何使这两个属性保持同步,以便添加到其中一个的属性将更新另一个属性 例如: obj.CsvString += "address:123 drive"; 或 我怎么能这样做?是否应该有其他方法来添加/删除?您需要实现自己的类,该类要么派生自Dictionary,要么实现IDictionary。然后,您可以重载(实现)自己的添加/更新/删除方法,这些方法既可以存储内存中的版本(
"age:123,name:john,last:doe"
和字典类型的另一个属性
我如何使这两个属性保持同步,以便添加到其中一个的属性将更新另一个属性
例如:
obj.CsvString += "address:123 drive";
或
我怎么能这样做?是否应该有其他方法来添加/删除?您需要实现自己的类,该类要么派生自Dictionary,要么实现IDictionary。然后,您可以重载(实现)自己的添加/更新/删除方法,这些方法既可以存储内存中的版本(字典),也可以存储CSV。您需要实现自己的类,该类可以从字典派生,也可以实现IDictionary。然后,您可以重载(实现)您自己的添加/更新/删除方法,这些方法既可以存储内存版本(字典),也可以存储CSV。您可以实现或将其用作SomeDic。然后,在更改的事件中,更改CSV的备份字段。在set_CsvString setter中,您可以使用基于CSV的新字段替换dictionary字段。您可以实现或将其用作SomeDic。然后,在更改的事件中,更改CSV的备份字段。在set_CsvString setter中,您可以使用基于CSV的新字段替换dictionary字段。您必须同时执行这两项操作吗
我只想添加到字典中,并有一个方法将字典作为字符串返回。不需要同步 你必须两者都做吗
我只想添加到字典中,并有一个方法将字典作为字符串返回。不需要同步 您可以创建从IList继承的自己的类,然后创建在添加元素时引发的事件 然后,您可以订阅该事件,当它被引发时,您只需更新另一个列表/字典
public class CustomList : IList<T>
公共类自定义列表:IList
您可以创建从IList继承的自己的类,然后创建一个在添加元素时引发的事件
然后,您可以订阅该事件,当它被引发时,您只需更新另一个列表/字典
public class CustomList : IList<T>
公共类自定义列表:IList
您真的需要写入这两个属性吗?将这对属性封装为一个类型。这样一来,对其中一个属性的所有访问都必须通过类才能保持同步。您真的需要写入这两个属性吗?将这两个属性封装为一个类型。这样一来,对其中任何一个的所有访问都必须通过您的类才能保持同步。@bemused:Argh。。。ToList->ForEach。。。这里有一个更好的方法:String.Join(“,”,dict.Select(x=>x.Key+”:“+x.Value))
@bemused:Argh。。。ToList->ForEach。。。这里有一个更好的方法:String.Join(“,”,dict.Select(x=>x.Key+”:“+x.Value))