C#不传递foreach代码
本文关键字:foreach 代码 | 更新日期: 2023-09-27 17:59:38
下面的代码读取一个文本文件,该文件的标题是路径,后面是文件名列表。代码将每个文件(从第二行开始)添加到ListView中。由于某种原因,最后两行永远无法到达。有什么想法吗?
private void loadFromFile()
{
if ((faxInOn != null) && File.Exists(@"D:'Settings.ye"))
{
string[] s;
StreamReader sr = new StreamReader(@"D:'Settings.ye", Encoding.Default);
s = sr.ReadToEnd().Split(new string[] { "'r'n", "'n" }, StringSplitOptions.None);
faxInOn.changePath(s[0]);
foreach (string temp in s)
foreach (ListViewItem lvi in listView1.Items)
if (lvi.Text == temp.Substring(1))
lvi.ImageIndex = int.Parse(temp.Substring(0, 1));
sr.Close();
sr.Dispose();
}
}
感谢
foreach块的使用方式对于我认为你正在尝试做的事情来说真的很低效。此外,使用"using(…)"块会更容易、更干净,这样你的资源就会得到正确的清理和处理。请参阅:http://msdn.microsoft.com/en-us/library/yh598w02.aspx
尝试使用File.ReadLines
例如:
// Read all lines in file, skipping the first header line
foreach(var line in File.ReadLines(@"D:'Settings.ye").Skip(1))
{
// add to list view
}