C# 动态数据的正确数据类型?

C# 动态数据的正确数据类型?,c#,.net,unity3d,mono,C#,.net,Unity3d,Mono,我正在为ArtityDraft编写一个解析器,这是一个将整个项目导出为XML文档的写作工具。大多数操作都相当简单,但它处理实体的方式有点棘手 本质上,每个实体都有一个特征集合,每个特征集合都是属性集合。每个属性可以是int、string或枚举,并具有名称(string)和ID(long) 我试图找出在每个实体中存储这些数据的最佳方式。我希望它是通用的,而不是预定义的实体,因为这更能证明未来。我想我对C#太缺乏经验了,不知道如何正确地存储它。我只需要根据数据字段的名称编制索引。能够在ID上建立索引

我正在为ArtityDraft编写一个解析器,这是一个将整个项目导出为XML文档的写作工具。大多数操作都相当简单,但它处理实体的方式有点棘手

本质上,每个实体都有一个特征集合,每个特征集合都是属性集合。每个属性可以是int、string或枚举,并具有名称(string)和ID(long)

我试图找出在每个实体中存储这些数据的最佳方式。我希望它是通用的,而不是预定义的实体,因为这更能证明未来。我想我对C#太缺乏经验了,不知道如何正确地存储它。我只需要根据数据字段的名称编制索引。能够在ID上建立索引也是一种奖励,但根本没有必要

我可以有三个字典,int、枚举和string各一个。根据名称或索引为每个索引编制索引,以我喜欢的为准。有三个不同的系列看起来有点乱,但也许这是最好的方式

我可以使用DataColumns在每个实体中创建一个DataTable,其中包含ID、name、datatype和value列,但是您需要三个值列(或者两个,因为枚举可以存储为int),这也有点混乱


这是一个用我现有的知识很容易解决的问题,但我觉得有一个比我所知道的更优雅的解决方案,我有机会在这里扩展一下我的C#知识。

我建议大家阅读一下C#ExpandoObject,我相信它会为您提供一个很好的解决方案


尽量确保有一个实际的、定义明确的问题被提出,更多的人会回答你的问题。在这里,你可以问,“我能用的最简单(或最好,或最好,或最优雅)的方法是什么?”