目前,我正在做的事情大致如下:
public class UselessClass
{
public string x;
public int y;
}我只在一个函数中使用过这个类一次...
Dictionary<string, UselessClass> dict;我希望能够编辑元组的值,所以我认为UselessClass是不够的,因为它们一旦创建就是只读的。我还想让命名变量x和y来做如下事情:
dict["hello"].y++;我可以做到这一点,而不必让这个UselessClass坐在代码周围,而实际上它只对一个函数使用一次吗?某种带有命名变量的匿名类?
要添加更多详细信息:
这纯粹是在一个算法函数中使用的,在这个函数中,我希望将一个字符串与某些变量连接在一起,即另一个字符串x和一个表示距离的整数
我能想到的将属性添加到已有类(如string )的最佳方法是使用字典。
而不是做:
Dictionary<string, string> names;
Dictionary<string, int> distances;这似乎是在浪费内存,我宁愿将名称和距离都放在同一个结构中。
但是结构本身本身是没有意义的,它只是在算法中用来执行计算。
发布于 2014-09-03 23:41:08
否-匿名类型是不可变的。如果您想要可变类型,请使用类(而不是结构)。使用dynamic和ExpandoObject将是一种替代方案,但您会失去设计时类型安全性。
如果你给出更多的上下文来说明它们是如何使用的,那么可能会有其他的选择。
https://stackoverflow.com/questions/25648413
复制相似问题