2013-09-23 3 views
0

У меня есть строка, содержащая содержимое CSV-файла.
Мне нужно извлечь эти значения для моих объектов.
Я не получаю CSV из файла CSV. Я получаю его как параметр (данные).
И в exmple they use file.csv для анализа данных.
Я попытался загрузить его в MemoryStream, но не повезло.Как разобрать CSV, переданный как параметр методу

public string methos(string data) 
     { 
      CsvFileDescription inputFileDescription = new CsvFileDescription 
      { 
       SeparatorChar = ',', 
       FirstLineHasColumnNames = true 
      }; 

      CsvContext cc = new CsvContext(); 

      MemoryStream mStream = new MemoryStream(System.Text.ASCIIEncoding.Default.GetBytes(data)); 

      IEnumerable<Data datas= 
      cc.Read<Data>(mStream, inputFileDescription); 

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

+0

Вы считаете, что пользовательский парсер CSV? Например, где вы явно указываете позицию в CSV на свойство вашего объекта? Или вы ищете что-то там (третье лицо), которое делает все это из коробки? –

+0

Мне действительно все равно :) Мне просто нужно отображать значения из CSV для моего объекта, и все. Я делаю это в первый раз, и мне нужно это быстро. – 1110

ответ

5

LINQtoCSV принимает только StreamReader, а не поток. Попробуйте следующее:

 using (MemoryStream mStream = new MemoryStream(System.Text.ASCIIEncoding.Default.GetBytes(data))) 
     using (StreamReader reader = new StreamReader(mStream)) 
     { 
      IEnumerable<Data> datas = cc.Read<Data>(reader, inputFileDescription); 
     } 
+0

Спасибо. Это решило проблему. Еще раз спасибо. – 1110

Смежные вопросы