一个相当简单的问题。我正在处理一个需要动态存储和检索属性值的项目,这些值将被写入现在和以后多次读取。检索速度是最重要的,每纳秒都很重要。
通常,我会使用Dictionary实现这个功能,但随着C# 4和ExpandoObject的出现,我想也许有更好的方法?是否有任何人有经验可以分享?我看到在其他帖子中,它没有使用字典实现,这让我很好奇它是否更快或更慢?
让我试着用一些伪代码来说明:
// In the main loop
var context = new Context();
context["MyKey"] = 123;
context["MyOtherKey"] = "CODE";
context["MyList"] = new List<int>() { 1, 12, 14 };
foreach(var handler in handlers) {
handler.DoStuff(context);
}
-
// "Handlers"
class MyFirstHandler {
void DoStuff(Context context) {
if (context["MyKey"] > 100)
context["NewKey"] = "CODE2";
}
}
class MySecondHandler {
void DoStuff(Context context) {
if (context["MyOtherKey"] == "CODE")
context["MyList"].Add(25); // Remember, it's only Pseudo-code..
}
}
希望你能理解我试图做的事情。
在这里我完全开放接受其他建议。我一直在考虑将Context类静态类型化(即实际具有MyKey属性、MyOtherKey属性等),尽管这可能是可能的,但它会极大地妨碍我们的生产力。