数组作为方法参数时的一些意外情况
今天在刷题时,使用数组作为方法的参数,出现了一些意外情况.
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 6 namespace MyArray 7 { 8 class Program 9 {10 static void Main(string[] args)11 {12 int[] nums = { 1, 2, 4, 5, 3, 2, 5, 6, 3 };13 Console.WriteLine("Array numbers:");14 foreach (int num in nums)15 Console.Write(num + " ");16 17 Sort(nums);18 Console.WriteLine("\nAfter Sort:");19 foreach (int num in nums)20 Console.Write(num + " ");21 22 Reverse(nums);23 Console.WriteLine("\nAfter Reverse:");24 foreach (int num in nums)25 Console.Write(num + " ");26 27 Change(nums);28 Console.WriteLine("\nAfter Change:");29 foreach (int num in nums)30 Console.Write(num + " ");31 32 SortAndChange(nums);33 Console.WriteLine("\nAfter SortAndChange:");34 foreach (int num in nums)35 Console.Write(num + " ");36 37 DistinctAndChange(nums);38 Console.WriteLine("\nAfter DistinctAndChange:");39 foreach (int num in nums)40 Console.Write(num + " ");41 42 Console.Read();43 }44 45 static void Sort(int[] nums)46 {47 nums = (from l in nums orderby l select l).ToArray();48 }49 50 static void Reverse(int[] nums)51 {52 nums = nums.Reverse().ToArray();53 }54 55 static void Change(int[] nums)56 {57 for (int i = 0; i < nums.Length - 1; i++)58 nums[i] = nums[i + 1];59 }60 61 static void SortAndChange(int[] nums)62 {63 nums = (from l in nums orderby l select l).ToArray();64 for (int i = 0; i < nums.Length - 1; i++)65 nums[i] = nums[i + 1];66 }67 68 static void DistinctAndChange(int[] nums)69 {70 int[] result = nums.Distinct().ToArray();71 for (int i = 0; i < nums.Length - 1; i++)72 nums[i] = nums[i + 1];73 }74 }75 }
结果: