我想按从大到小的顺序组织我的列表框,但是组织它需要很长时间。C#
我试图从最大的数字到最小的数字来组织我的列表框,但当我执行它时,它大约需要2分钟才能发生。它工作正常,但需要很长时间 我不知道该怎么办。这是我知道怎么做的唯一方法。如果有更好的方法,我们将不胜感激我想按从大到小的顺序组织我的列表框,但是组织它需要很长时间。C#,c#,winforms,C#,Winforms,我试图从最大的数字到最小的数字来组织我的列表框,但当我执行它时,它大约需要2分钟才能发生。它工作正常,但需要很长时间 我不知道该怎么办。这是我知道怎么做的唯一方法。如果有更好的方法,我们将不胜感激 private void button11_Click(object sender, EventArgs e) { clearFile(strPathSort); clearFile(strPathSkips);
private void button11_Click(object sender, EventArgs e)
{
clearFile(strPathSort);
clearFile(strPathSkips);
for(int i3 = 0; i3 <= countLinesInFile(strPathList); i3++)
{
int intMostEpisodes = int.MinValue;
int intIndex = -1;
for (int i = 0; i <= countLinesInFile(strPathList); i++)
{
bool booOk = true;
StreamReader sr = new StreamReader(strPathSkips);
for (int i2 = 0; i2 <= countLinesInFile(strPathSkips); i2++)
{
if (sr.Peek() != -1)
{
if (i == int.Parse(sr.ReadLine().ToString()))
booOk = false;
}
}
sr.Close();
if (findEpisodesOfLine(i) > intMostEpisodes && booOk == true)
{
intMostEpisodes = findEpisodesOfLine(i);
intIndex = i;
}
}
StreamWriter swSkips = new StreamWriter(strPathSkips, true);
swSkips.WriteLine(intIndex);
swSkips.Close();
StreamWriter sw = new StreamWriter(strPathSort, true);
sw.WriteLine(intIndex);
sw.Close();
}
StreamWriter sw3 = new StreamWriter(strPathSorted, false);
StreamReader sr4 = new StreamReader(strPathSort);
for (int i4 = 0; i4 <= countLinesInFile(strPathSort); i4++)
{
if (sr4.Peek() != -1)
sw3.WriteLine(readSpecificLine(strPathList, int.Parse(sr4.ReadLine())));
}
sw3.Close();
sr4.Close();
addInfo(strPathSorted, lbListe, true);
}
private void按钮11\u单击(对象发送者,事件参数e)
{
clearFile(strPathSort);
clearFile(strPathSkips);
对于(int i3=0;i3来说,每次调用countLinesInFile(strPathSort)
时,似乎都要转到文件,这将非常慢。事实上,循环中有很多文件操作不断重复。最好将所有操作都保存在内存中,并在最后写入
取而代之的是
var lineCount = countLinesInFile(strPathList);
然后在你的循环中使用它
for(int i3 = 0; i3 <= lineCount; i3++)
用于(int i3=0;i3您的问题说您正在尝试对列表框进行排序。但是您的代码都没有与列表框进行交互。lbliste=listbox;countlines文件统计文本文件中有多少行。为什么您一直在循环中打开和关闭StreamWriter?为什么不在循环之前打开它们并保持它们打开?是否存在特殊情况r您不使用ListBox.Sorted
的原因?如果您可以共享一个,那就太棒了。特别是addInfo
的内容。这是有效的,但在第三行之后,它不断重复第三行。