C#:用于存储项目中所需的一组字符串值的最佳结构?

时间:2016-04-01 15:43:12

标签: c# csv

我有一个带标题行的小csv文件。我想从文件中选择与搜索匹配的行(每次搜索一行),然后将该行的值提供给我的类。我想通过csv中标题定义的列名引用值。

我已经编写了用于读取csv,获取标题,执行搜索等的代码。

我正在寻找关于" best"的意见。 (或大多数与CSharp最佳实践一致)存储行值的方式,以便它们可以被column_names引用。

我需要将值暴露给项目中的其他类。我应该创建一个具有设置为值的公共属性的类吗?字典对象作为属性?一个DataTable?或其他什么?

大约有20列,所以我想通过column_name引用20个字符串键/值对。

感谢。

2 个答案:

答案 0 :(得分:3)

具有属性的公共类是关于最佳实践的好方法,这也允许您设计所有用于处理类中大部分数据所需的方法,以便于阅读和维护。如果你想使用数据表,这可能会占用更多,但考虑到它不超过20个对象,它仍然足够小,不会被认为是坏的。

答案 1 :(得分:2)

如果列是动态的,那么该类应如下所示:

class csvFile
{
   public List<string> ColumnHeaders { get; set; }
   public List<Dictionary<string, string>> Rows { get; set; }
}