C# IList的自定义OrderBy
我有一个C# IList的自定义OrderBy,c#,C#,我有一个IList,并希望根据以下场景按此列表排序: 以“abs”开头的元素保持在顶部,其他元素将按正常方式排序为String。CompareTo 任何人都可以帮忙。尝试实现自定义比较器 List<String> strings = new ArrayList<String>(); strings.add("abs"); strings.add("a"); strings.add("b"); strings.add("bb"); s
IList
,并希望根据以下场景按此列表排序:
以“abs”开头的元素保持在顶部,其他元素将按正常方式排序为String。CompareTo
任何人都可以帮忙。尝试实现自定义比较器
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);
}
}
});
List strings=new ArrayList();
字符串。添加(“abs”);
字符串。添加(“a”);
字符串。添加(“b”);
字符串。添加(“bb”);
字符串。添加(“ac”);
字符串。添加(“c”);
Collections.sort(字符串、新比较器(){
@凌驾
公共整数比较(字符串o1、字符串o2){
if(o1.等效信号情况(“abs”)){
返回-1;
}否则如果(o2.等信号情况(“abs”)){
返回1;
}否则{
返回o1。与(o2)相比;
}
}
});
更新在更改标记之前,我以为这是
Java
。不知道上面的代码是否有助于实现自定义比较器
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);
}
}
});
List strings=new ArrayList();
字符串。添加(“abs”);
字符串。添加(“a”);
字符串。添加(“b”);
字符串。添加(“bb”);
字符串。添加(“ac”);
字符串。添加(“c”);
Collections.sort(字符串、新比较器(){
@凌驾
公共整数比较(字符串o1、字符串o2){
if(o1.等效信号情况(“abs”)){
返回-1;
}否则如果(o2.等信号情况(“abs”)){
返回1;
}否则{
返回o1。与(o2)相比;
}
}
});
更新在更改标记之前,我以为这是
Java
。不知道上面的代码是否有助于实现自定义比较器
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);
}
}
});
List strings=new ArrayList();
字符串。添加(“abs”);
字符串。添加(“a”);
字符串。添加(“b”);
字符串。添加(“bb”);
字符串。添加(“ac”);
字符串。添加(“c”);
Collections.sort(字符串、新比较器(){
@凌驾
公共整数比较(字符串o1、字符串o2){
if(o1.等效信号情况(“abs”)){
返回-1;
}否则如果(o2.等信号情况(“abs”)){
返回1;
}否则{
返回o1。与(o2)相比;
}
}
});
更新在更改标记之前,我以为这是
Java
。不知道上面的代码是否有助于实现自定义比较器
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);
}
}
});
List strings=new ArrayList();
字符串。添加(“abs”);
字符串。添加(“a”);
字符串。添加(“b”);
字符串。添加(“bb”);
字符串。添加(“ac”);
字符串。添加(“c”);
Collections.sort(字符串、新比较器(){
@凌驾
公共整数比较(字符串o1、字符串o2){
if(o1.等效信号情况(“abs”)){
返回-1;
}否则如果(o2.等信号情况(“abs”)){
返回1;
}否则{
返回o1。与(o2)相比;
}
}
});
更新在更改标记之前,我以为这是
Java
。不知道上面的代码是否有用您应该实现自定义IComparer并使用列表的排序方法
List.Sort方法(IComparer)
您应该实现自定义的IComparer,并使用列表的排序方法
List.Sort方法(IComparer)
您应该实现自定义的IComparer,并使用列表的排序方法
List.Sort方法(IComparer)
您应该实现自定义的IComparer,并使用列表的排序方法
List.Sort方法(IComparer)
t使用以下简单代码:
stringArray.OrderBy(x=>x.StartsWith(“abs”)?0:1)代码>t使用以下简单代码:
stringArray.OrderBy(x=>x.StartsWith(“abs”)?0:1)代码>t使用以下简单代码:
stringArray.OrderBy(x=>x.StartsWith(“abs”)?0:1)代码>t使用以下简单代码:
stringArray.OrderBy(x=>x.StartsWith(“abs”)?0:1)代码>