欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#中數(shù)組擴(kuò)容的幾種方式介紹

 更新時(shí)間:2022年08月27日 11:45:14   作者:Darren Ji  
這篇文章介紹了C#中數(shù)組擴(kuò)容的幾種方式,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

假設(shè)有一個(gè)規(guī)定長(zhǎng)度的數(shù)組,如何擴(kuò)容呢?最容易想到的是通過如下方式擴(kuò)容:

    class Program
    {
        static void Main(string[] args)
        {
            int[] arrs = new[] {1, 2, 3, 4, 5};
            arrs[5] = 6;
        }
    }

報(bào)錯(cuò):未處理IndexOutOfRanageException,索引超出了數(shù)組界限。

創(chuàng)建一個(gè)擴(kuò)容的臨時(shí)數(shù)組,然后賦值給原數(shù)組,使用循環(huán)遍歷方式

        static void Main(string[] args)
        {
            int[] arrs = new[] {1, 2, 3, 4, 5};
            int[] temp = new int[arrs.Length + 1];
            //遍歷arrs數(shù)組,把該數(shù)組的元素全部賦值給temp數(shù)組
            for (int i = 0; i < arrs.Length; i++)
            {
                temp[i] = arrs[i];
            }
            //把臨時(shí)數(shù)組賦值給原數(shù)組,這時(shí)原數(shù)組已經(jīng)擴(kuò)容
            arrs = temp;
            //給擴(kuò)容后原數(shù)組的最后一個(gè)位置賦值
            arrs[arrs.Length - 1] = 6;
            foreach (var item in arrs)
            {
                Console.WriteLine(item);
            }
            Console.ReadKey();
        }

創(chuàng)建一個(gè)擴(kuò)容的臨時(shí)數(shù)組,然后賦值給原數(shù)組,使用Array的靜態(tài)方法

像這種平常的數(shù)組間的拷貝,Array類肯定為我們準(zhǔn)備了靜態(tài)方法:Array.Copy()。

        static void Main(string[] args)
        {
            int[] arrs = new[] {1, 2, 3, 4, 5};
            int[] temp = new int[arrs.Length + 1];
            Array.Copy(arrs, temp, arrs.Length);
            //把臨時(shí)數(shù)組賦值給原數(shù)組,這時(shí)原數(shù)組已經(jīng)擴(kuò)容
            arrs = temp;
            //給擴(kuò)容后原數(shù)組的最后一個(gè)位置賦值
            arrs[arrs.Length - 1] = 6;
            foreach (var item in arrs)
            {
                Console.WriteLine(item);
            }
            Console.ReadKey();
        }

使用Array的靜態(tài)方法擴(kuò)容

但是,拷貝來拷貝去顯得比較繁瑣,我們也可以使用Array.Resize()方法給數(shù)組擴(kuò)容。

        static void Main(string[] args)
        {
            int[] arrs = new[] {1, 2, 3, 4, 5};
            Array.Resize(ref arrs, arrs.Length + 1);
            //給擴(kuò)容后原數(shù)組的最后一個(gè)位置賦值
            arrs[arrs.Length - 1] = 6;
            foreach (var item in arrs)
            {
                Console.WriteLine(item);
            }
            Console.ReadKey();
        }

總結(jié):數(shù)組擴(kuò)容優(yōu)先考慮使用Array的靜態(tài)方法Resize,其次考慮把一個(gè)擴(kuò)容的、臨時(shí)的數(shù)組賦值給原數(shù)組。

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接

相關(guān)文章

  • C#實(shí)現(xiàn)將網(wǎng)頁保存成圖片的網(wǎng)頁拍照功能

    C#實(shí)現(xiàn)將網(wǎng)頁保存成圖片的網(wǎng)頁拍照功能

    這篇文章主要介紹了C#實(shí)現(xiàn)將網(wǎng)頁保存成圖片的網(wǎng)頁拍照功能,很實(shí)用的一個(gè)功能,需要的朋友可以參考下
    2014-07-07
  • c# Newtonsoft 六個(gè)值得使用的特性(上)

    c# Newtonsoft 六個(gè)值得使用的特性(上)

    這篇文章主要介紹了c# Newtonsoft 六個(gè)值得使用的特性,文中示例代碼非常詳細(xì),幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-06-06
  • Windows中使用C#為文件夾和文件編寫密碼鎖的示例分享

    Windows中使用C#為文件夾和文件編寫密碼鎖的示例分享

    這篇文章主要介紹了Windows中使用C#為文件夾和文件編寫密碼鎖的示例分享,特別是文件鎖可以針對(duì)各種類型的文件輸入密碼進(jìn)行加密解密,非常實(shí)用,需要的朋友可以參考下
    2016-03-03
  • C#中的IDisposable模式用法詳解

    C#中的IDisposable模式用法詳解

    這篇文章主要介紹了C#中的IDisposable模式用法,講述了垃圾資源回收機(jī)制的實(shí)現(xiàn),并對(duì)比分析了Dispose()方法、~DisposableClass()析構(gòu)函數(shù)、虛方法Dispose(bool disposing)的原理,需要的朋友可以參考下
    2014-09-09
  • C#預(yù)處理指令之#line,#pragma warning 詳細(xì)解析

    C#預(yù)處理指令之#line,#pragma warning 詳細(xì)解析

    #line 指令可能由生成過程中的自動(dòng)中間步驟使用。例如,如果行從原始的源代碼文件中移除,但是您仍希望編譯器基于文件中的原始行號(hào)生成輸出,則可以移除行,然后用 #line 模擬原始行號(hào)
    2014-01-01
  • C# .NET創(chuàng)建虛擬目錄的方法詳解

    C# .NET創(chuàng)建虛擬目錄的方法詳解

    虛擬目錄(virtual directory),計(jì)算機(jī)術(shù)語,每個(gè) Internet服務(wù)可以從多個(gè)目錄中發(fā)布。本文將為大家介紹如何通過C# asp.net mvc 創(chuàng)建虛擬目錄,感興趣的可以了解一下
    2022-01-01
  • C#中DataTable 轉(zhuǎn)換為 Json的方法匯總(三種方法)

    C#中DataTable 轉(zhuǎn)換為 Json的方法匯總(三種方法)

    JavaScript Object Notation (Json)是一種輕量級(jí)的數(shù)據(jù)交換格式,下面小編給大家介紹三種方法實(shí)現(xiàn)DataTable轉(zhuǎn)換成 Json 對(duì)象,感興趣的朋友一起看看吧
    2016-11-11
  • C# 泛型深入理解介紹

    C# 泛型深入理解介紹

    在上一個(gè)專題中介紹了C#2.0 中引入泛型的原因以及有了泛型后所帶來的好處,然而上一專題相當(dāng)于是介紹了泛型的一些基本知識(shí)的,對(duì)于泛型的性能為什么會(huì)比非泛型的性能高卻沒有給出理由,所以在這個(gè)專題就中將會(huì)介紹原因和一些關(guān)于泛型的其他知識(shí)
    2012-11-11
  • C#?Sqlite數(shù)據(jù)庫的搭建及使用技巧

    C#?Sqlite數(shù)據(jù)庫的搭建及使用技巧

    這篇文章主要介紹了C#?Sqlite數(shù)據(jù)庫的搭建及使用技巧,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的朋友可以參考一下
    2022-08-08
  • c#反射表達(dá)式樹模糊搜索示例

    c#反射表達(dá)式樹模糊搜索示例

    這篇文章主要介紹了c#反射表達(dá)式樹模糊搜索示例,反射實(shí)體T,非datetime字段反射獲取表達(dá)式樹,需要的朋友可以參考下
    2014-02-02

最新評(píng)論