最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#實現(xiàn)Array添加擴展實例

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

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

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

/// <summary>
/// Array添加
/// </summary>
/// <typeparam name="T">泛型</typeparam>
/// <param name="array">Array</param>
/// <param name="item">需要添加項</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),實現(xiàn)此效果更為簡單方面,代碼如下:

/// <summary>
/// Array添加
/// </summary>
/// <typeparam name="T">泛型</typeparam>
/// <param name="array">Array</param>
/// <param name="item">需要添加項</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é)果:

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

相關文章

  • C#用戶控件之溫度計設計

    C#用戶控件之溫度計設計

    這篇文章主要為大家詳細介紹了C#用戶控件之溫度計的設計方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • C# SQLite序列操作實現(xiàn)方法詳解

    C# SQLite序列操作實現(xiàn)方法詳解

    這篇文章主要介紹了C# SQLite序列操作實現(xiàn)方法,結(jié)合實例形式詳細分析了C#實現(xiàn)SQLite序列操作的具體步驟與相關操作技巧,需要的朋友可以參考下
    2017-07-07
  • WinForm中的登錄實現(xiàn)

    WinForm中的登錄實現(xiàn)

    在一般的C/S系統(tǒng)中,登錄功能基本上是必備功能,總結(jié)了三種C# Winform登錄功能的實現(xiàn)方法
    2012-11-11
  • C# 基礎入門--變量

    C# 基礎入門--變量

    本文主要介紹了C#中變量的基礎知識,具有很好的參考價值。下面跟著小編一起來看下吧
    2017-03-03
  • C#流類FileStream學習使用筆記

    C#流類FileStream學習使用筆記

    這篇文章主要介紹了C#流類FileStream學習使用筆記,本文直接給出示例代碼,代碼中每一步都有詳細注釋,需要的朋友可以參考下
    2015-06-06
  • 用c#實現(xiàn)簡易的計算器功能實例代碼

    用c#實現(xiàn)簡易的計算器功能實例代碼

    這篇文章主要介紹了c#實現(xiàn)簡易的計算器功能,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-05-05
  • C#如何對多線程、多任務管理(demo)

    C#如何對多線程、多任務管理(demo)

    這篇文章主要通過一個小demo介紹了C#如何對多線程、多任務管理,需要的朋友可以參考下
    2015-07-07
  • C# WinForm應用程序降低系統(tǒng)內(nèi)存占用方法總結(jié)

    C# WinForm應用程序降低系統(tǒng)內(nèi)存占用方法總結(jié)

    這篇文章主要介紹了C# WinForm應用程序降低系統(tǒng)內(nèi)存占用方法總結(jié),本文總結(jié)了9個方法,同時給出了一個定期清理執(zhí)行垃圾回收代碼,需要的朋友可以參考下
    2014-10-10
  • 打開一個Unity工程步驟

    打開一個Unity工程步驟

    這篇文章講述了如何打開一個Unity工程,包含詳細的圖文介紹的步驟,希望本文對你有所幫助
    2021-06-06
  • 使用C#獲取網(wǎng)頁HTML源碼的例子

    使用C#獲取網(wǎng)頁HTML源碼的例子

    這篇文章主要介紹了使用C#獲取網(wǎng)頁HTML源碼的例子,考慮了區(qū)分GB2312和UTF-8編碼,需要的朋友可以參考下
    2014-08-08

最新評論

东安县| 鱼台县| 琼海市| 阳原县| 岳阳市| 乐东| 柘荣县| 石棉县| 崇仁县| 徐闻县| 酉阳| 岱山县| 织金县| 昂仁县| 民勤县| 汶川县| 成都市| 三亚市| 江山市| 乌拉特前旗| 旬阳县| 南溪县| 鱼台县| 静安区| 隆林| 杭锦后旗| 凌海市| 酉阳| 凤翔县| 彭山县| 宁阳县| 吉木乃县| 镇原县| 鞍山市| 兴安县| 舟曲县| 普兰店市| 巫溪县| 商都县| 双桥区| 永靖县|