我有一个名为Line
的类,它存储大量信息,包括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;
}
使用当前代码我每次都打印MAGICAL LINE!我做错了什么?
答案 0 :(得分:1)
您总是在检查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;
}
}
答案 1 :(得分:0)
我不确定您是否向我们提供了足够的信息,但oldID始终为0.您需要存储oldID并将其与某个地方的newID进行比较。