C#最优雅的方式将字符串数组转换为具有不同键的字典

时间:2017-09-18 08:46:26

标签: c# arrays dictionary

我有一个字符串数组的集合(将CSV拆分为行然后分隔的结果) {31001, 2014-01-01, 24:00:00},{31001, 2014-01-02, 24:00:00},{31001, 2014-01-03, 24:00:00} ... 现在我需要将其转换为字典列表,其中每个字典元素将具有取决于数组元素索引的自定义键。所以我想实现这样的目标:

{
 {"Index":"31001", "Date":"2014-01-01", "Time":"24:00:00"},
 {"Index":"31001", "Date":"2014-01-02", "Time":"24:00:00"},
 {"Index":"31001", "Date":"2014-01-03", "Time":"24:00:00"},
 ...
}

我无法使用此模型

2 个答案:

答案 0 :(得分:0)

假设您有重复的密钥,您可以使用类似

的内容
List<KeyValuePair<string,Tuple<string,string>> 

其中键是索引,其余数据属于元组(日期,时间,等等)。 如果您有更多数据,可以使用List<KeyValuePair<string,List<string>>>

答案 1 :(得分:0)

您可以使用匿名对象执行此操作。 这种方式会导致objList包含具有索引,日期和时间属性的所有行。而不使用命名类。

(请注意,如果我没有说出正确的话,我还在学习)

List<Object> objList = new List<object>();

foreach(var line in lines)
{
    var fields = line.Split(',');
    objList.Add(new {
        Index = fields[0],
        Date = fields[1],
        Time=fields[2]
     });
 }