問題描述: 對於一個一維數組,將其中的元素逆置輸出!
解決方法一: 前后端數據交換
object[] array = new object[] { 1,2,3,4,5,6,'x'}; for (int i = 0; i < array.Length / 2; i++) { object t = array[i]; array[i] = array[array.Length-1-i]; array[array.Length-1-i] = t; } for (int i = 0; i < array.Length; i++) { Console.Write(" " + array[i]); } Console.ReadKey();
結果 ,由於將數組定義為object,所以數組的元素可以是任意類型,但這樣會有一個問題,就是數組要想比較大小的時候就麻煩了,可以考慮使用泛型來實現!
解決方法二:采用泛型實現
Msdn官方解釋:泛型和數組
在 C# 2.0 以及更高版本中,下限為零的一維數組自動實現 IList<T>。這使您可以創建能夠使用相同代碼循環訪問數組和其他集合類型的泛型方法。此技術主要對讀取集合中的數據很有用。IList<T> 接口不能用於在數組中添加或移除元素。如果嘗試對此上下文中的數組調用 IList<T> 方法(例如 RemoveAt),則將引發異常。
下面的代碼示例演示帶有 IList<T> 輸入參數的單個泛型方法如何同時循環訪問列表和數組,本例中為整數數組。
IList 屬性如下:
static void Main(string[] args) { object[] array = new object[] { 1,2,3,4,5,6,'x'}; int[] array2 = new int[] { 1, 2, 3, 4, 5, 6, 7, 8 }; InversionArray(array); InversionArray(array2); PrintArray(array); PrintArray(array2); Console.ReadKey(); } private static void PrintArray<T>(IList<T> array) { for (int i = 0; i < array.Count; i++) //將之前的array.Length 改為array.Count; { Console.Write(" " + array[i]); } Console.WriteLine("打印完畢"); } private static void InversionArray<T>(IList<T> array) { for (int i = 0; i < array.Count/ 2; i++) { T t = array[i]; array[i] = array[array.Count - 1 - i]; array[array.Count - 1 - i] = t; } }
結果:


