将文本框转换为字典

时间:2011-12-07 17:10:25

标签: c# linq dictionary ienumerable

我正在尝试将文本框条目转换为double,double的字典。即。

输入文字是:

  

1,63
  2,31
  3,78
  4,83

然后我用逗号(,)分隔行。

我有下面的代码 - 但是IEnumerable不起作用。任何帮助将不胜感激!!

 string input = txtInput.Text;
    List<string> list = new List<string>(
                               input.Split(new string[] { "\r\n" },
                               StringSplitOptions.RemoveEmptyEntries));

    IEnumerable<Dictionary<double, double>> dict = list.Select(row => row.Split(','))
    .Select(pair => new Dictionary<string, string>(double.Parse(pair[0]), double.Parse(pair[1])));

1 个答案:

答案 0 :(得分:4)

听起来你可能想要:

var dictionary = input.Lines
                      .Select(line => line.Split(','))
                      .ToDictionary(array => double.Parse(array[0]),
                                    array => double.Parse(array[1]));

然而:

  • 这假设分割线都具有正确的位数(并且您使用的文化使用“。”作为小数分隔符;否则您将遇到问题)
  • 这假设每一行都有可解析的长篇
  • 比较double的equty值(字典需要)通常是一个坏主意。您可以使用intdecimal吗?