【发布时间】:2013-05-21 18:40:33
【问题描述】:
我在将 Double 从 CSV 文件添加到 List<double> 时遇到问题。现在我以前用完全相同的文件做过这个,并将它添加到Double Array。
这是我的代码,适用于array:
double[] ch1Array = new double[arraySize];
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
string fileName = Path.Combine(filePath, openFileDialog1.FileName);
var reader = new StreamReader(File.OpenRead(fileName));
while(!reader.EndOfStream)
{
var line = reader.ReadLine(); //Get through the column titles
var values = line.Split(',');
if (dataSize > 0)
{
try
{
ch1Array[dataSize] = Convert.ToDouble(values[1]);
//etc...
这段代码完美运行,我唯一改变的是我不再使用Array,而是使用List<double>:
List<double> ch1Array = new List<double>();
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
//Create stream reader and open file
string fileName = Path.Combine(mainFilePath, openFileDialog1.FileName);
var reader = new StreamReader(File.OpenRead(fileName));
int counter = 0;
//Read document until end of stream
while (!reader.EndOfStream)
{
var line = reader.ReadLine();
var values = line.Split(',');
try
{
ch1Array.Add(Convert.ToDouble(values[1]));
//etc..
现在我假设我使用了List 错误(这是我第一次使用Lists)。一旦程序到达该部分(它编译并运行良好),它就会告诉我我有一个错误并且我的输入字符串的格式不正确。但是因为我可以在其他情况下使用变量values[1] 作为Double,所以我不知道我在做什么,这会引发错误。
谁能告诉我我做错了什么?
编辑:这是抛出的异常:
【问题讨论】:
-
堆栈跟踪是什么?
-
异常发生时 values[1] 发生了什么?
-
这不是您的列表错误。这是“Convert.ToDouble(values[1])”中的错误。但是我们需要更多信息才能进一步帮助您... values[1] 的价值是什么?真正的错误信息是什么?
-
List<>代码看起来不错,所以它是别的东西。使用调试器来验证发生了什么。即使您确定它是相同的,它也可能是不同的文件。 -
我什至认为您不会在数组示例中添加新元素,除非您在其他地方增加
dataSize并增加数组大小。