Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/338.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#排序与Java集合。排序给出不同的结果_Java_C#_Sorting_Collections - Fatal编程技术网

C#排序与Java集合。排序给出不同的结果

C#排序与Java集合。排序给出不同的结果,java,c#,sorting,collections,Java,C#,Sorting,Collections,C#代码: public class Test { public static void Main() { List<string> list = new List<string> { "johnsmith@mail.com", "john_newyork@mail.com", "john00@mail.com" }; list.Sort(); for(int i=0;i<list.Count;i++)

C#代码:

public class Test
{
    public static void Main()
    {
        List<string> list = new List<string> { "johnsmith@mail.com", "john_newyork@mail.com", "john00@mail.com" };
        list.Sort();
        for(int i=0;i<list.Count;i++){
            Console.WriteLine(list[i]);
        }

    }
}
class Ideone
{
    public static void main (String[] args) throws java.lang.Exception
    {
        List<String> list = new ArrayList<String>();
        list.add("johnsmith@mail.com");
        list.add("john_newyork@mail.com");
        list.add("john00@mail.com");
        Collections.sort(list);
        System.out.println(list);
    }
}
在c#中,可以使用
StringComparer
指定字符串之间的比较方式。要实现与Java中相同的行为,需要使用
StringComparer.Ordinal

using System;
using System.Collections.Generic;

namespace ConsoleApp
{
    public class Test
    {
        public static void Main()
        {
            var list = new List<string> { "johnsmith@mail.com", "john_newyork@mail.com", "john00@mail.com" };
            list.Sort(StringComparer.Ordinal);
            foreach (var element in list)
            {
                Console.WriteLine(element);
            }
        }
    }
}

另请参见,以获取详细示例:

要按ASCII值排序,请使用StringComparer.Ordinal


list.Sort(StringComparer.Ordinal)

谢谢。在没有任何StringComparer的情况下,list.sort()在默认情况下是如何工作的?@soup\u boy这与调用
list.sort(StringComparer.CurrentCulture)
是一样的。顺便说一句,您可以将Java更改为按区域性信息排序,但Java似乎没有任何用于
Comparator
的常量,因此,您必须实现自己的方法,使用
java.text.Collator
(使用其.code>getInstance
方法)来进行字符串比较。
using System;
using System.Collections.Generic;

namespace ConsoleApp
{
    public class Test
    {
        public static void Main()
        {
            var list = new List<string> { "johnsmith@mail.com", "john_newyork@mail.com", "john00@mail.com" };
            list.Sort(StringComparer.Ordinal);
            foreach (var element in list)
            {
                Console.WriteLine(element);
            }
        }
    }
}
john00@mail.com
john_newyork@mail.com
johnsmith@mail.com