C# 选择正确的数据结构enum/struct/class?
我正在分析一个如下所示的文件:C# 选择正确的数据结构enum/struct/class?,c#,.net,data-structures,C#,.net,Data Structures,我正在分析一个如下所示的文件: test_data = { { id = '001-000505', cnv = { e9 = 0, i6 = 0, }, rel = { rs10850985 = '-', rs38932097 = '-', rs5030655 = '-', rs10655852 = '-', rs28371725 = '-', }, result = '*5/*5', gt = { r
test_data = {
{
id = '001-000505',
cnv = {
e9 = 0,
i6 = 0,
},
rel = {
rs10850985 = '-',
rs38932097 = '-',
rs5030655 = '-',
rs10655852 = '-',
rs28371725 = '-',
},
result = '*5/*5',
gt = {
rs31080985 = { '-', '-' },
rs16947 = { '-', '-' },
rs3892097 = { '-', '-' },
rs503350655 = { '-', '-' },
rs50530865 = { '-', '-' },
rs5030656 = { '-', '-' },
rs106371706 = { '-', '-' },
rs59421388 = { '-', '-' },
rs7693258 = { '-', '-' },
rs28371725 = { '-', '-' },
},
},
{
id = '004-AATTGG',
cnv = {
e9 = 1,
i6 = 1,
},
rel = {
rs1080985 = '>>',
rs3892097 = '>>',
rs505306d55 = '>>',
rs1065852 = '>>',
rs2837d1725 = '>>',
},
result = '*1/*5',
gt = {
rs10830985 = { 'C', 'C' },
rs164947 = { 'C', 'C' },
rs3892097 = { 'G', 'G' },
rs5030e655 = { 'T', 'T' },
rs5030865 = { 'G', 'G' },
rs5030656 = { 'AAG', 'AAG' },
rs1065852 = { 'C', 'C' },
rs28371706 = { 'C', 'C' },
rs59421388 = { 'G', 'G' },
rs769258 = { 'G', 'G' },
rs28371725 = { 'G', 'G' },
},
},
{
id = '003-0300101',
cnv = {
e9 = 1,
i6 = 1,
},
rel = {
rs1080985 = '>>',
rs3892097 = '>>',
rs50530655 = '>>',
rs10365852 = '>>',
rs283271725 = '<<',
},
result = '*41/*5',
gt = {
rs1080985 = { 'C', 'C' },
rs16947 = { 'T', 'T' },
rs3892097 = { 'G', 'G' },
rs5030655 = { 'T', 'T' },
rs5030865 = { 'G', 'G' },
rs5030656 = { 'AAG', 'AAG' },
rs1065852 = { 'C', 'C' },
rs28371706 = { 'C', 'C' },
rs593421388 = { 'G', 'G' },
rs7659258 = { 'G', 'G' },
rs28371725 = { 'A', 'A' },
},
},
{
id = '007-CCAA',
cnv = {
e9 = 1,
i6 = 1,
},
rel = {
rs1080985 = '>>',
rs38922097 = '>>',
rs50350655 = '>>',
rs1065852 = '>>',
rs283371725 = '<<',
},
result = '*41/*5',
gt = {
rs1080985 = { 'C', 'C' },
rs16947 = { 'T', 'T' },
rs3892097 = { 'G', 'G' },
rs50350655 = { 'T', 'T' },
rs50350865 = { 'G', 'G' },
rs5030656 = { 'AAG', 'AAG' },
rs106235852 = { 'C', 'C' },
rs28371706 = { 'C', 'C' },
rs59421388 = { 'G', 'G' },
rs769258 = { 'G', 'G' },
rs28371725 = { 'A', 'A' },
},
},
{
id = '001-000105',
cnv = {
e9 = 1,
i6 = 1,
},
rel = {
rs1080985 = '>>',
rs38392097 = '>>',
rs5030655 = '>>',
rs10565852 = '>>',
rs283371725 = '>>',
},
result = '*1/*5',
gt = {
rs10820985 = { 'C', 'C' },
rs16947 = { 'C', 'C' },
rs32892097 = { 'G', 'G' },
rs53030655 = { 'T', 'T' },
rs50303865 = { 'G', 'G' },
rs50530656 = { 'AAG', 'AAG' },
rs1065852 = { 'C', 'C' },
rs283751706 = { 'C', 'C' },
rs59421388 = { 'G', 'G' },
rs769258 = { 'G', 'G' },
rs28371725 = { 'G', 'G' },
},
},
我不认为这是正确的解决方案,因为我想说
string somestring=LuaStructure.gt.rs1080985;
这是不可能的,因为我需要先申报
LuaStructure somestructure = new LuaStructure;
那我就要做了
LuaStructure.gt somestructuregt = new LuaStructure.gt;
我不想经历整个过程
我需要什么样的类/结构/枚举组合来捕获我想要的数据?在
struct
s中这样做对您没有好处,因为属性/类型需要显式解析和赋值。我倾向于避免这种情况,但使用正则表达式或基本字符串操作将输入转换为JSON实际上可能会带来好处,因为格式非常接近。这样做,您至少可以利用现有的解析器来为您处理繁重的工作。在struct
s中这样做不会给您带来好处,因为属性/类型需要显式解析和赋值。我倾向于避免这种情况,但使用正则表达式或基本字符串操作将输入转换为JSON实际上可能会带来好处,因为格式非常接近。这样做,您至少可以利用现有的解析器为您处理繁重的工作。这种结构太糟糕了。祝你好运你有没有考虑过在对象创建过程中使用属性初始值设定项?@哎哟,你说得对,太糟糕了,你能建议一些更有用的吗:)@哎哟,你能告诉我你的意思吗?我不知道如何对嵌套数据进行初始化newsomeobject{PropertyA=“”,PropertyB=1234,NestedObject=newanotherobject{InnerValue=123}
这不是一个真正的答案,所以我很抱歉在注释中发布它。@真的该对象是一个类吗?你能告诉我你的回答是什么意思吗?非常感谢你,这个结构太糟糕了。祝你好运你有没有考虑过在对象创建过程中使用属性初始值设定项?@哎哟,你说得对,太糟糕了,你能建议一些更有用的吗:)@哎哟,你能告诉我你的意思吗?我不知道如何对嵌套数据进行初始化newsomeobject{PropertyA=“”,PropertyB=1234,NestedObject=newanotherobject{InnerValue=123}
这不是一个真正的答案,所以我很抱歉在注释中发布它。@真的该对象是一个类吗?你能告诉我你的回答是什么意思吗?非常感谢你的回答。你能告诉我如何使用regex实现这一点吗?这似乎有点超出了你的问题范围(因此你需要在自己尝试解决它之后再问另一个问题)。此外,你不需要我对正则表达式的建议(我知道的只是多一点,足以把我后面的人搞得一团糟)。看一看JSON规范。格式几乎匹配,简单的字符串操作可能就可以了。谢谢。你能告诉我怎么配吗?这似乎不是一场比赛,梅说这是一场势均力敌的比赛。将=
替换为:
,将单引号替换为双引号,它看起来非常像一系列JSON集合(集合)。我只需要替换分号和引号?然后就是json?非常感谢你的回答。你能告诉我如何使用regex实现这一点吗?这似乎有点超出了你的问题范围(因此你需要在自己尝试解决它之后再问另一个问题)。此外,你不需要我对正则表达式的建议(我知道的只是多一点,足以把我后面的人搞得一团糟)。看一看JSON规范。格式几乎匹配,简单的字符串操作可能就可以了。谢谢。你能告诉我怎么配吗?这似乎不是一场比赛,梅说这是一场势均力敌的比赛。将=
替换为:
,将单引号替换为双引号,它看起来非常像一系列JSON集合(集合)。我只需要替换分号和引号?然后就是json了?
LuaStructure.gt somestructuregt = new LuaStructure.gt;