
Sorting multi column ListView -code-Any better ideas?
lb = ListView with six columns:
fnd = Dont worry about it.
string dd= fnd.Text;
int count = lb.Items.Count;
int x;
string[] itms = new string[lb.Items.Count];
string[,] sbitms = new
string[lb.Items.Count,5];
fnd.Text="Putting data in Arrays";
double a=1;
pb.Value=0;
for ( x=0;x<count;x++)
{
a=((double)x/(double)count)*100;
pb.Value=(int)a+1;
itms[x]=lb.Items[x].Text;
itms[x]=itms[x]+"!"+x.ToString();
sbitms[x,0]=x.ToString();
sbitms[x,1]=lb.Items[x].SubItems[1].Text;
sbitms[x,2]=lb.Items[x].SubItems[2].Text;
sbitms[x,3]=lb.Items[x].SubItems[3].Text;
sbitms[x,4]=lb.Items[x].SubItems[4].Text;
//sbitms[x,5]=lb.Items[x].SubItems[5].Text;
}
fnd.Text="Sorting Array";
Array.Sort(itms);
fnd.Text="Putting data Back in result pane";
pb.Value=0;
lb.Items.Clear();
int u=0,v=0,fv=0;
string w;
for (x=0;x<count;x++)
{
a=((double)x/(double)count)*100;
pb.Value=(int)a+1;
u=itms[x].LastIndexOf("!");
v=itms[x].ToString().Length-u;
w=itms[x].Substring(u+1,v-1);
fv=int.Parse(w);
lb.Items.Add(itms[x].Substring(0,itms[x].Length-v));
lb.Items[x].SubItems.Add(sbitms[fv,1]);
lb.Items[x].SubItems.Add(sbitms[fv,2]);
lb.Items[x].SubItems.Add(sbitms[fv,3]);
lb.Items[x].SubItems.Add(sbitms[fv,4]);
//lb.Items[x].SubItems.Add(sbitms[fv,5]);
}
fnd.Text=dd;
itms=null;
sbitms=null;
}