2013-09-23 27 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

相关问题