相关疑难解决方法(0)

754
推荐指数
22
解决办法
55万
查看次数

Array.Sort()对原始数组进行排序,而不仅仅是复制

此代码段来自C#2010 for Dummies.令我困惑的是,当使用Array.Sort()方法时,我的数组副本(sortedNames)和原始数组(行星)都会被排序,即使它只调用sortedNames上的Sort方法.

第二个foreach循环引用哪个数组无关紧要,输出是相同的.

static void Main(string[] args)
{
    Console.WriteLine("The 5 planets closest to the sun, in order: ");
    string[] planets = new string[] { "Mercury","Venus", "Earth", "Mars", "Jupiter"};
    foreach (string planet in planets)
    {
        Console.WriteLine("\t" + planet);
    }
    Console.WriteLine("\nNow listed alphabetically: ");


    string[] sortedNames = planets;
    Array.Sort(sortedNames);

    foreach (string planet in planets)
    {
        Console.WriteLine("\t" + planet);
    }
}
Run Code Online (Sandbox Code Playgroud)

c# arrays sorting

8
推荐指数
1
解决办法
2240
查看次数

标签 统计

arrays ×1

c# ×1

copy ×1

deep-copy ×1

language-agnostic ×1

shallow-copy ×1

sorting ×1