对对象列表进行排序…需要属性按字母顺序排序,除非需要在列表中具有特定字母FIRST的项目
本文关键字:排序 列表 项目 FIRST 属性 对象 顺序 | 更新日期: 2023-09-27 18:02:19
我有一个Windows应用程序,为用户提供了一个字符串下拉列表。数据来自提供XML的web服务。
我们循环遍历XML节点并创建多个对象:
Environment env = new Environment(id, name, type);
每一个都被添加到列表中:listEnvs.Add(env);
现在,我想按"name"字段按字母顺序对该列表排序,有一个技巧:任何以字母"p"开头的内容都需要排在前面(当然,应该按其余字母的字母顺序排列)。
我不能使用LINQ,因为我们在这里处理的是一个为。net 2.0编写的应用程序,我没有权限更改它(目前)。
我只是想让用户更容易一点,因为90%的情况下,他们会想从下拉列表中选择以字母"p"开头的名字。没有必要强迫他们一直滚动下拉列表从"A"到"P"。
我该怎么做呢?
谢谢!
如果这过于简单或没有抓住重点,我表示歉意…
你试过使用list.sort(compareFn)吗?
,
private static int CompareEnv(Environment a, Environment b)
{
if (String.IsNullOrEmpty(a.name))
{
if (String.IsNullOrEmpty(b.name)) return 0;
else return -1;
}
if (String.IsNullOrEmpty(b.name)) return 1;
if (a.name.StartsWith("P"))
{
if (b.name.StartsWith("P")) return a.name.CompareTo(b.name);
else return -1;
}
if (b.name.StartsWith("P")) return 1;
return a.name.CompareTo(b.name);
}
{
//设置列表的代码
listEnvs.Sort(CompareEnv);
}