Загружая файл .csv в словарь, я получаю сообщение об ошибке «не могу преобразовать строку« string [] »в строку» - PullRequest
9 голосов
/ 20 марта 2012

Я использовал streamreader для чтения в файле .csv, затем мне нужно разделить значения и поместить их в словарь. пока у меня есть:

namespace WindowsFormsApplication2
{
public partial class Form1 : Form
{
Dictionary<string, string> dict = new Dictionary<string, string>();   
    public Form1()
    {
        InitializeComponent();
    }
    private void Form1_Load(object sender, EventArgs e)
    {
        using (StreamReader reader = new StreamReader("textwords0.csv"))
        {
            string line;
            while ((line = reader.ReadLine()) != null)
            {
                string[] parts = line.Split(',');
                dict.Add(parts[0], parts[1]);
            }
        }
    }

Я получаю сообщение об ошибке "не могу преобразовать строку" [] в строку ", но не могу решить, как ее исправить.

Заранее спасибо!

обновление: ... Я случайно оставил файл CSV открытым и теперь он работает, извините за потраченное время, ребята думали, что у меня открыта другая электронная таблица, хотя и очень полезный совет, спасибо за помощь!

Ответы [ 2 ]

30 голосов
/ 20 марта 2012

Если вы используете .NET 4.0 , следующее действительно лаконично и должно выполнить то же самое:

var dict = File.ReadLines("textwords0.csv").Select(line => line.Split(',')).ToDictionary(line => line[0], line => line[1]);
0 голосов
/ 20 марта 2012

ошибка на самом деле из-за ',' вы вводите. Нужно разделить массив символов. Вот пример метода разделения с использованием string.split.

string[] parts = line.Split(new string[] { "," }, StringSplitOptions.None);

Надеюсь, это поможет. это предполагает, что это строка, из которой происходит ошибка, поскольку вы не указали.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...