C# 对影响先前数组的数组进行排序

C# 对影响先前数组的数组进行排序,c#,arrays,sorting,C#,Arrays,Sorting,我试图对数组进行排序,以找到它的平均值。找到中间值后,我希望继续使用数组。在使用代码时 double[] views, viewssorted; views = new double[] {9.0, 1111.0, 2.0 }; viewssorted = views; Array.Sort(viewssorted); 我的视图已排序和视图数组都已排序。如何使其仅能对查看的进行排序?使用 view

我试图对数组进行排序,以找到它的平均值。找到中间值后,我希望继续使用数组。在使用代码时

            double[] views, viewssorted;
            views = new double[] {9.0, 1111.0,  2.0 };
            viewssorted = views;
            Array.Sort(viewssorted);
我的
视图已排序
视图
数组都已排序。如何使其仅能对查看的
进行排序?

使用

viewssorted = views;
viewsorted
views
是对同一数组的引用。因此,第一个方面的任何变化都将反映在第二个方面

您应该使用创建数组的副本

viewssorted = (double[]) views.Clone();;

您的问题是数组本质上是类,因此是引用类型。引用类型不包含值,而是指向内存中的某个区域

编写
viewsorted=views时将视图中的相同参照指定给ViewsOrted。它们本质上是由两个变量引用的同一个对象

要创建数组的副本,但使用相同的内部引用(在您的示例中是相同的双值),请使用
array.Clone()

这将是

viewssorted = (double[])Array.Clone(views);

数组是C#中的引用类型,这就是它们都排序的原因

你能行

views.CopyTo(viewssorted)


通过创建数组的副本。您没有两个数组;有两个变量指向同一个数组。对数组进行排序如何帮助您找到平均值?它应该是中值
viewssorted = views.Clone()