2016年11月24日 星期四

[C#] 改變陣列的長度

C# 提供一個方式,讓我們可以很輕的改變Array長度,並且保留原本的資料

public static void Resize<T> (
 ref T[] array,
 int newSize
)

使用方法如下

Array.Resize(ref 你的陣列 , 新的長度)

以下是一個範例,把陣列加長,並印出資料


using System;
using System.Collections.Generic;


namespace Rextester
{
    public class Program
    {
        public static void Main(string[] args)
        {
            
            int[] number=new int[20];
            
            for (int i=0;i<number.Length;i++)
            {
                number[i]=i+1;
            }
            
            Array.Resize(ref number,30);
            
            int idx=0;
            foreach(int n in number)
                Console.WriteLine("number["+(idx++)+"]="+n);
        }
    }
}

執行結果:

number[0]=1
number[1]=2
number[2]=3
number[3]=4
number[4]=5
number[5]=6
number[6]=7
number[7]=8
number[8]=9
number[9]=10
number[10]=11
number[11]=12
number[12]=13
number[13]=14
number[14]=15
number[15]=16
number[16]=17
number[17]=18
number[18]=19
number[19]=20
number[20]=0
number[21]=0
number[22]=0
number[23]=0
number[24]=0
number[25]=0
number[26]=0
number[27]=0
number[28]=0
number[29]=0

你可以發現,資料都還在,陣列也如我所願變長了,接下來我們試試變短看看

Array.Resize(ref number,10);

輸出結果如下

number[0]=1
number[1]=2
number[2]=3
number[3]=4
number[4]=5
number[5]=6
number[6]=7
number[7]=8
number[8]=9
number[9]=10

資料依然完好無損。

沒有留言:

張貼留言