我正在尝试在C#中构建一个数据结构来保存用JavaScript创建的动态数据并用JSON表示。我正在寻找有关如何设计C#数据结构的建议,以便以易于搜索的方式保存JSON数据。我目前正在使用.NET 4.0; 4.5是这个特定项目的一个方法。
数据具有以下属性:
true
,false
中的任意一个,
一些字符串值,或键值对的嵌套集合以下是JavaScript数据的示例:
{
foo: true,
bar: false,
baz: {
a: true,
b: false,
c: "maybe"
}
quux: "maybe"
}
我想通过以下方式处理数据:
foo
,bar
和baz
,{但{1}}是新的给我,我不知道前面的时间如果它存在,它是否存在,以及它是否具有平坦或嵌套值。quux
,true
以及'flat'的多个'可能'false
值成员。如果有必要,我可以将其转换为实际布尔值(将'可能'值视为string
),但我更愿意保留'可能'值。我想我可以预先知道所有'可能'的值,所以我也可以构建一个true
来保存这些值,并且还在那里抛出Enum
和true
所以我有一个输入值。由于键是唯一的,我被词典所吸引,以提高查找速度和易用性。但我有点难以将嵌套集合与平值一起表示。这在像JavaScript这样的动态语言中非常简单;什么是C#中相应的成语?
答案 0 :(得分:0)
C#中真正的对应结构将是一个匿名对象/类。 我个人更喜欢使用Dictionary,要么使用对象作为值类型(然后,检查键的值是否是另一个词典,所以你知道你是否有嵌套的集合)或使用包装类,持有字典或平面值,并有一些像IsNestedCollection和你需要的字段。