我有这段代码:
DataTable dt = new DataTable();
dt.Columns.Add("Status");
dt.Columns.Add("File");
dt.Columns.Add("Revision");
int i = 0;
foreach (SvnStatusEventArgs status in statuses) // statuses is a Collection
{
dt.Rows.Add();
switch (status.LocalContentStatus)
{
case SvnStatus.NotVersioned:
dt.Rows[i]["Status"] = "Not Versioned";
break;
default:
dt.Rows[i]["Status"] = status.LocalContentStatus.ToString();
break;
}
dt.Rows[i]["File"] = status.Path;
foreach(SvnInfoEventArgs info in infos) //infos is a Collection
{
if (status.Path.Equals(info.Path))
{
dt.Rows[i]["Revision"] = info.Revision;
break;
}
}
i++;
}
statuses
但是,infos
每行最多可以有 20K 行,因此我的嵌套 foreach 可能需要很长时间。
我想如果我将这些集合转换为列表然后尝试对它们进行排序,我可能会加快速度Path
。
查看排序方法的MSDN 页面,我不知道如何比较Path
SvnStatusEventArgs[n] 和 SvnStatusEventArgs[n+1] 中的字段。然后我也开始怀疑,因为我要对这两组对象进行整体迭代并对它们进行排序,这真的会比我现有的代码更有效吗?我想它会是 n*2 而不是 n*n,对吧?
对于它的价值,Path
我试图排序的字段只是一个字符串。