我有一个IList<string>
,并希望通过基于以下情形这份名单下令: 与“ABS”留在顶部开始元素和其他人会以正常的方式进行排序as String.CompareTo
自定义排序依据为IList的
任何人都可以请帮忙。
我有一个IList<string>
,并希望通过基于以下情形这份名单下令: 与“ABS”留在顶部开始元素和其他人会以正常的方式进行排序as String.CompareTo
自定义排序依据为IList的
任何人都可以请帮忙。
试图实现自定义比较
List<String> strings = new ArrayList<String>();
strings.add("abs");
strings.add("a");
strings.add("b");
strings.add("bb");
strings.add("ac");
strings.add("c");
Collections.sort(strings, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
if (o1.equalsIgnoreCase("abs")) {
return -1;
} else if (o2.equalsIgnoreCase("abs")) {
return 1;
} else {
return o1.compareTo(o2);
}
}
});
更新我认为这是Java
标签被改变了。不知道上面的代码是否有帮助
var abs = list.Where(e = e.StartsWith("abs")).OrderBy(e => e);
var rest = list.Except(abs).OrderBy(e => e);
var result = abs.Concat(rest);
佩蒂这个简单的代码:
stringArray.OrderBy(x => x.StartsWith("abs") ? 0: 1).ThenBy(x => x);
什么具有u试过吗? – Ademar