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

C#實(shí)現(xiàn)Array添加擴(kuò)展實(shí)例

 更新時(shí)間:2014年08月06日 10:29:16   投稿:shichen2014  
這篇文章主要介紹了C#實(shí)現(xiàn)Array添加擴(kuò)展,對C#初學(xué)者有不錯(cuò)的參考價(jià)值,需要的朋友可以參考下

一般學(xué)過C#的都知道,Array 一旦定義好,比如四個(gè)長度,當(dāng)需要再往里面添加元素的時(shí)候,需要Array.Resize一下才可以。有鑒于此,為了提高代碼復(fù)用,所以索性封裝下,方便使用。

具體實(shí)現(xiàn)代碼如下:

/// <summary>
/// Array添加
/// </summary>
/// <typeparam name="T">泛型</typeparam>
/// <param name="array">Array</param>
/// <param name="item">需要添加項(xiàng)</param>
/// <returns>返回新的Array</returns>
public static T[] Add<T>(this T[] array, T item)
{
  int _count = array.Length;
  Array.Resize<T>(ref array, _count + 1);
  array[_count] = item;
  return array;
}
/// <summary>
/// Array添加
/// </summary>
/// <typeparam name="T">泛型</typeparam>
/// <param name="sourceArray">Array</param>
/// <param name="addArray">Array</param>
/// <returns>返回新的Array</returns>
public static T[] AddRange<T>(this T[] sourceArray, T[] addArray)
{
  int _count = sourceArray.Length;
  int _addCount = addArray.Length;
  Array.Resize<T>(ref sourceArray, _count + _addCount);
  //foreach (T t in addArray)
  //{
  //  sourceArray[_count] = t;
  //  _count++;
  //}
  addArray.CopyTo(sourceArray, _count);
  return sourceArray;
}

測試代碼:

[TestMethod()]
public void AddTest()
{
  int[] _source = new int[3] { 1, 2, 3 };
  int[] _expected = new int[4] { 1, 2, 3, 4 };
  _source = _source.Add(4);
  CollectionAssert.AreEqual(_source, _expected);
}

[TestMethod()]
public void AddRangeTest()
{
  int[] _source = new int[3] { 1, 2, 3 };
  int[] _expected = new int[6] { 1, 2, 3, 4, 5, 6 };
  _source = _source.AddRange(new int[3] { 4, 5, 6 });
  CollectionAssert.AreEqual(_source, _expected);
}

測試結(jié)果:

代碼邏輯很簡單,無需說明,只是方面后續(xù)使用而已,這是基于.NET 2.0的寫法,大家都知道,在.NET 3.0+有了LINQ出現(xiàn),實(shí)現(xiàn)此效果更為簡單方面,代碼如下:

/// <summary>
/// Array添加
/// </summary>
/// <typeparam name="T">泛型</typeparam>
/// <param name="array">Array</param>
/// <param name="item">需要添加項(xiàng)</param>
/// <returns>返回新的Array</returns>
public static T[] Add<T>(this T[] array, T item)
{
  array = 
array.Concat

<T>(new T[1] { item }).ToArray();
  return array;
}
/// <summary>
/// Array添加
/// </summary>
/// <typeparam name="T">泛型</typeparam>
/// <param name="sourceArray">Array</param>
/// <param name="addArray">Array</param>
/// <returns>返回新的Array</returns>
public static T[] AddRange<T>(this T[] sourceArray, T[] addArray)
{
  sourceArray = 
sourceArray.Concat

<T>(addArray).ToArray();
  return sourceArray;
}

同樣的測試代碼:

[TestMethod()]
public void AddTest()
{
  int[] _source = new int[3] { 1, 2, 3 };
  int[] _expected = new int[4] { 1, 2, 3, 4 };
  _source = _source.Add(4);
  CollectionAssert.AreEqual(_source, _expected);
}

[TestMethod()]
public void AddRangeTest()
{
  int[] _source = new int[3] { 1, 2, 3 };
  int[] _expected = new int[6] { 1, 2, 3, 4, 5, 6 };
  _source = _source.AddRange(new int[3] { 4, 5, 6 });
  CollectionAssert.AreEqual(_source, _expected);
}

測試結(jié)果:

希望本文能對大家有所幫助!

相關(guān)文章

  • 使用C#實(shí)現(xiàn)解析Excel公式

    使用C#實(shí)現(xiàn)解析Excel公式

    在日常工作中,我們經(jīng)常需要在Excel中使用公式對表中數(shù)據(jù)進(jìn)行計(jì)算和分析,所以本文小編主要來和大家介紹一下如何在C#中實(shí)現(xiàn)解析Excel公式,感興趣的可以了解下
    2024-02-02
  • c#實(shí)現(xiàn)獲取字符串陣列中元素最長或最短的長度

    c#實(shí)現(xiàn)獲取字符串陣列中元素最長或最短的長度

    下面小編就為大家分享一篇c#實(shí)現(xiàn)獲取字符串陣列中元素最長或最短的長度方法,具有很好的參考價(jià)值,希望對大家有所幫助
    2017-12-12
  • C#實(shí)現(xiàn)模擬ATM自動取款機(jī)功能

    C#實(shí)現(xiàn)模擬ATM自動取款機(jī)功能

    這篇文章介紹了C#實(shí)現(xiàn)模擬ATM自動取款機(jī)功能的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-08-08
  • C#使用ADO.Net部件來訪問Access數(shù)據(jù)庫的方法

    C#使用ADO.Net部件來訪問Access數(shù)據(jù)庫的方法

    數(shù)據(jù)庫的訪問是所有編程語言中最重要的部分,C#提供了ADO.Net部件用于對數(shù)據(jù)庫進(jìn)行訪問。本文從最簡單易用的微軟Access數(shù)據(jù)庫入手討論在C#中對數(shù)據(jù)庫的訪問。
    2015-09-09
  • C#實(shí)現(xiàn)的海盜分金算法實(shí)例

    C#實(shí)現(xiàn)的海盜分金算法實(shí)例

    這篇文章主要介紹了C#實(shí)現(xiàn)的海盜分金算法,結(jié)合具體實(shí)例形式分析了海盜分金算法的原理與C#相應(yīng)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2017-07-07
  • C#中設(shè)置textbox限制條件的方法

    C#中設(shè)置textbox限制條件的方法

    這篇文章主要介紹了C#中設(shè)置textbox限制條件的方法,可實(shí)現(xiàn)設(shè)置像數(shù)量、價(jià)格、金額等的textbox的限制條件,用戶只能輸入數(shù)字或小數(shù),是非常實(shí)用的技巧,需要的朋友可以參考下
    2014-12-12
  • C#使用udp如何實(shí)現(xiàn)消息的接收和發(fā)送

    C#使用udp如何實(shí)現(xiàn)消息的接收和發(fā)送

    這篇文章主要介紹了C#使用udp如何實(shí)現(xiàn)消息的接收和發(fā)送問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • C#實(shí)現(xiàn)計(jì)算年齡的簡單方法匯總

    C#實(shí)現(xiàn)計(jì)算年齡的簡單方法匯總

    本文給大家分享的是C#代碼實(shí)現(xiàn)的簡單實(shí)用的給出用戶的出生日期,計(jì)算出用戶的年齡的代碼,另外附上其他網(wǎng)友的方法,算是對計(jì)算年齡的一次小結(jié),希望大家能夠喜歡。
    2015-05-05
  • C#實(shí)現(xiàn)文件上傳以及多文件上傳功能

    C#實(shí)現(xiàn)文件上傳以及多文件上傳功能

    這篇文章主要為大家詳細(xì)介紹了C#實(shí)現(xiàn)文件上傳以及多文件上傳功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • C#算法之羅馬數(shù)字轉(zhuǎn)整數(shù)

    C#算法之羅馬數(shù)字轉(zhuǎn)整數(shù)

    本文詳細(xì)講解了C#算法之羅馬數(shù)字轉(zhuǎn)整數(shù),文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-01-01

最新評論