我正在研究数据可视化工具。它从纯文本文件中检索一堆数据,然后绘制该数据的各种图表和图形。
到目前为止,我一直在处理一组我知道类型的数据。
例如,如果我使用的CSV文件如下所示:
id,用户名,消息数量,消息
23123124,@ SomeUsername,5,这是一个5tr1ng
89134349,@ OtherUsername,8,另一个字符串
然后我可以将它存储在这样的对象中:
public class SomeClass
{
private string id;
private string username;
private int numberOfMessages;
private string message;
}
然后我只有List<SomeClass>
。
这很棒,但是它只适用于特定的CSV文件。我希望有一个灵活的数据结构,具体取决于CSV文件的内容。
通过读取文本文件第一行中的标题行,可以轻松发现属性的数量和这些属性的名称。每个数据的类型不清楚(例如,id可以存储为int或字符串),因此我将要求用户告诉应用程序每个属性使用什么类型。我可以通过在下拉列表旁边显示每个属性的名称来实现这一点,其中包含string,int,bool等选项。
但是如何获取该用户输入并创建包含这些类型属性的数据结构。因此,如果用户通过一个包含3个下拉菜单并选择“字符串”,“整数”和“布尔”的表单,我实际上想要一个看起来像这样的对象:
public class SomeClass
{
private string someString;
private int someInt;
private bool someBool;
}
实现这一目标的最佳方法是什么?我对泛型有一个合理的理解,但在这种情况下不确定如何使用它们。我听说过反射,类型类和动态关键字,但实际上并不了解它们。我曾尝试使用字典但仍然卡住了。这些选项中是否有可行?他们有点矫枉过正吗?我是否想过这个? 请帮助我!:D
谢谢!