Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# IList的自定义OrderBy_C# - Fatal编程技术网

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)