use*_*486 -8 c# streamreader while-loop
表单在内部停止工作。返回cursor to c=s.Substring...在while
StreamReader sr= new StreamReader("Unos.txt");
s = sr.ReadLine();
c = s.Substring(s.IndexOf(',') + 2, (s.Length - s.IndexOf(',') + 2) - (s.Length - s.IndexOf('-') + 2));
if ((String.Equals(cbRazred.SelectedItem.ToString(), c.Substring(0, (c.IndexOf('-')))) &&
String.Equals(cbOdeljenje.SelectedItem.ToString(), odeljenje.ToString()))) lbSpisak.Items.Add(s.Substring(0, s.IndexOf(',')));
while (s != null)
{
s = sr.ReadLine();
c = s.Substring(s.IndexOf(',') + 2, (s.Length - s.IndexOf(',') + 2) - (s.Length - s.IndexOf('-') + 2));
if ((String.Equals(cbRazred.SelectedItem.ToString(), c.Substring(0, (c.IndexOf('-')))) &&
String.Equals(cbOdeljenje.SelectedItem.ToString(), odeljenje.ToString()))) lbSpisak.Items.Add(s.Substring(0, s.IndexOf(',')));
}
sr.Close();
Run Code Online (Sandbox Code Playgroud)
更好地使用:
while (!sr.EndOfStream)
Run Code Online (Sandbox Code Playgroud)
作为检查您的 while 循环:
using (StreamReader sr = new StreamReader("Unos.txt"))
{
while (!sr.EndOfStream)
{
s = sr.ReadLine();
// make new checks on s because you're getting substrings and indexes that may not exist
//e.g
if (s.Length>=1)...
//do you logic
}
}
Run Code Online (Sandbox Code Playgroud)