由于某种原因,即使if语句是。
,我的Else语句也始终被执行string line;
string[] columns = null;
while ((line = sr.ReadLine()) != null)
{
columns = line.Split(',');
if (columns.Contains(tboxName.Text))
{
rtBoxResults.Text = ((columns[0] + " " + columns[1] + " " + columns[2] + " " + columns[3]));
}
else
{
MessageBox.Show("No Hotels Found.");
break;
}
这是因为它正在搜索文件中的每一行,因为while循环而不是每一行都包含tboxName吗?
如果是这样,如何在不使用while循环的情况下返回列[0]的所有值?
答案 0 :(得分:1)
如果我理解正确,如果文件中的行 none 包含tboxName.Text
,您是否要显示消息框?如果是这样,您可以在while循环完成后执行此检查,使用bool
来跟踪是否有任何行匹配:
string line;
string[] columns = null;
bool foundHotels = false;
while ((line = sr.ReadLine()) != null)
{
columns = line.Split(',');
if (columns.Contains(tboxName.Text))
{
rtBoxResults.Text = ((columns[0] + " " + columns[1] + " " + columns[2] + " " + columns[3]));
foundHotels = true;
}
}
if(!foundHotels)
{
MessageBox.Show("No Hotels Found.");
}
答案 1 :(得分:1)
尝试这样的事情
string[] columns = null;
var isHotels = false;
while ((line = sr.ReadLine()) != null)
{
columns = line.Split(',');
if (columns.Contains(tboxName.Text))
{
rtBoxResults.Text = ((columns[0] + " " + columns[1] + " " + columns[2] + " " + columns[3]));
isHotels = true;
}
} // while loop ends
if (!isHotels)
{
MessageBox.Show("No Hotels Found.");
break;
}