我有一個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