我有一个名为Line
的类,它存储大量信息,包括行的ID (我有一个行列表)。我将此信息写入CSV文件中,并希望检查ID的第一个字符是否已更改(希望更改为更多的字符)。此更改表示一个新文件夹。以下是我尝试过的:
public bool IsNewFile (Line ln)
{
int newID = ln.getID()[0];
int oldID = 0;
if (newID != oldID)
{
oldID = newID;
return true;
}
else
{
oldID = newID;
return false;
}
}
以下是我对csv方法的了解:
public void csvWriter (Line ln, StreamWriter stream)//Writes List to CSV
{
//some code here
if (IsNewFile(ln))
{
//MAGICAL LINE
}
else
{
//NOT MAGICAL LINE
}
stream.WriteLine(printLine);
}
这里是getID()
public string getID()
{
return id;
}
用当前的代码,我每次都打印出神奇的线条!我做错了什么?
发布于 2015-06-05 09:33:16
您总是检查newID是否为!= 0,因为您总是将oldID初始化为0。您应该将oldID存储在Line中,因为从现在起,设置oldID = newID将什么也不做,因为当函数返回其布尔值时,这些变量将被销毁。
public bool IsNewFile (Line ln)
{
int newID = ln.getID()[0];
int oldID = ln.getOldID()[0];
if (newID != oldID)
{
ln.oldID = newID;
return true;
}
else
{
ln.oldID = newID;
return false;
}
}
发布于 2015-06-05 09:37:09
我不确定你是否给我们足够的信息,但oldID总是0。您需要存储oldID并将其与newID进行比较。
https://stackoverflow.com/questions/30672397
复制