我正在为学校编写一些代码,但我不断收到ArgumentOutOfRangeException
使用此代码,我试图从.csv文件中读取一些数据,如果它等于图像的名称,我希望它从.csv文件中删除它,同时保持结构完整。
public void checkPair(Image card1, Image card2)
{
this.Image1 = card1;
this.Image2 = card2;
if (Convert.ToString(card1.Source) == Convert.ToString(card2.Source) && (card1 != card2))
{
getPoint(card1, card2);
string path = @"Save1.csv";
var reader = new StreamReader(File.OpenRead(path));
var data = new List<List<string>>();
while (!reader.EndOfStream)
{
var line = reader.ReadLine();
var values = line.Split(';');
data.Add(new List<String> { values[0], values[1]
});
}
reader.Close();
string delimiter = ";";
for (int i = 1; i < 5; i++)
{
for (int x = 0; x < 4; x++)
{
if (data[i][x] == Convert.ToString(card1.Source))
{
data[i][x] = null;
}
}
}
File.WriteAllText(path, data[0][0] + delimiter + data[0][1] + Environment.NewLine + data[1][0] + delimiter + data[1][1] + delimiter + data[1][2] + delimiter + data[1][3] + Environment.NewLine + data[2][0] + delimiter + data[2][1] + delimiter + data[2][2] + delimiter + data[2][3] + Environment.NewLine + data[3][0] + delimiter + data[3][1] + delimiter + data[3][2] + delimiter + data[3][3] + Environment.NewLine + data[4][0] + delimiter + data[4][1] + delimiter + data[4][2] + delimiter + data[4][3] + Environment.NewLine + "ready");
我不知道为什么会收到此错误以及如何解决该错误
答案 0 :(得分:2)
最初,我将从
更改您的最后一行File.WriteAllText(path, data[0][0] + delimiter + data[0][1] ....
类似
var obj1 = data[0][0];
var obj2 = data[0][1];
File.WriteAllText(path, obj1 + delimiter + obj2 .... etc)
如果您遍历内联函数或数组访问,则当您遇到异常时,堆栈跟踪不会那么有用。至少您会对导致问题的声明有所了解。
如果您要在事后查看日志中的异常,则可以证明该技术非常有用。