c#数组的基础操作

1,添加数组元素

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace AddItem
{
    class Program
    {
        /// <summary>
        /// 增加单个数组元素
        /// </summary>
        /// <param name="ArrayBorn">要向其中添加元素的一维数组</param>
        /// <param name="Index">添加索引</param>
        /// <param name="Value">添加值</param>
        /// <returns></returns>
        static int[] AddArray(int[] ArrayBorn, int Index, int Value)
        {
            if (Index >= (ArrayBorn.Length))//判断添加索引是否大于数组的长度
                Index = ArrayBorn.Length - 1;//将添加索引设置为数组的最大索引
            int[] TemArray = new int[ArrayBorn.Length + 1];//声明一个新的数组
            for (int i = 0; i < TemArray.Length; i++)//遍历新数组的元素
            {
                if (Index >= 0)//判断添加索引是否大于等于0
                {
                    if (i < (Index + 1))//判断遍历到的索引是否小于添加索引加1
                        TemArray[i] = ArrayBorn[i];//交换元素值
                    else if (i == (Index + 1))//判断遍历到的索引是否等于添加索引加1
                        TemArray[i] = Value;//为遍历到的索引设置添加值
                    else
                        TemArray[i] = ArrayBorn[i - 1];//交换元素值
                }
                else
                {
                    if (i == 0)//判断遍历到的索引是否为0
                        TemArray[i] = Value;//为遍历到的索引设置添加值
                    else
                        TemArray[i] = ArrayBorn[i - 1];//交换元素值
                }
            }
            return TemArray;//返回插入元素后的新数组
        }
        static void Main(string[] args)
        {
            int[] ArrayInt = new int[] { 0, 1, 2, 3, 4, 6, 7, 8, 9 };//声明一个一维数组
            Console.WriteLine("原数组元素:");
            foreach (int i in ArrayInt)//遍历声明的一维数组
                Console.Write(i+" ");//输出数组中的元素
            Console.WriteLine();//换行
            ArrayInt = AddArray(ArrayInt, 4, 5);//调用自定义方法向数组中插入单个元素
            Console.WriteLine("插入之后的数组元素:");
            foreach (int i in ArrayInt)//遍历插入元素后的一维数组
                Console.Write(i+" ");//输出数组中的元素
            Console.ReadLine();
        }
    }
}

2,数组中添加数组

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace AddArrays
{
    class Program
    {
        /// <summary>
        /// 向一维数组中添加一个数组
        /// </summary>
        /// <param name="ArrayBorn">源数组</param>
        /// <param name="ArrayAdd">要添加的数组</param>
        /// <param name="Index">添加索引</param>
        /// <returns>新得到的数组</returns>
        static int[] AddArray(int[] ArrayBorn, int[] ArrayAdd, int Index)
        {
            if (Index >= (ArrayBorn.Length))//判断添加索引是否大于数组的长度
                Index = ArrayBorn.Length - 1;//将添加索引设置为数组的最大索引
            int[] TemArray = new int[ArrayBorn.Length + ArrayAdd.Length];//声明一个新的数组
            for (int i = 0; i < TemArray.Length; i++)//遍历新数组的元素
            {
                if (Index >= 0)//判断添加索引是否大于等于0
                {
                    if (i < (Index + 1))//判断遍历到的索引是否小于添加索引加1
                        TemArray[i] = ArrayBorn[i];//交换元素值
                    else if (i == (Index + 1))//判断遍历到的索引是否等于添加索引加1
                    {
                        for (int j = 0; j < ArrayAdd.Length; j++)//遍历要添加的数组
                            TemArray[i + j] = ArrayAdd[j];//为遍历到的索引设置添加值
                        i = i + ArrayAdd.Length - 1;//将遍历索引设置为要添加数组的索引最大值
                    }
                    else
                        TemArray[i] = ArrayBorn[i - ArrayAdd.Length];//交换元素值
                }
                else
                {
                    if (i == 0)//判断遍历到的索引是否为0
                    {
                        for (int j = 0; j < ArrayAdd.Length; j++)//遍历要添加的数组
                            TemArray[i + j] = ArrayAdd[j];//为遍历到的索引设置添加值
                        i = i + ArrayAdd.Length - 1;//将遍历索引设置为要添加数组的索引最大值
                    }
                    else
                        TemArray[i] = ArrayBorn[i - ArrayAdd.Length];//交换元素值
                }
            }
            return TemArray;//返回添加数组后的新数组
        } 
        static void Main(string[] args)
        {
            int[] ArrayInt = new int[] { 0, 1, 2, 3, 8, 9 };//声明一个数组,用来作为源数组
            int[] ArrayInt1 = new int[] { 4, 5, 6, 7 };//声明一个数组,用来作为要添加的数组
            Console.WriteLine("源数组:");
            foreach (int i in ArrayInt)//遍历源数组
                Console.Write(i+" ");//输出源数组元素
            Console.WriteLine();//换行
            Console.WriteLine("要添加的数组:");
            foreach (int i in ArrayInt1)//遍历要添加的数组
                Console.Write(i + " ");//输出要添加的数组中的元素
            Console.WriteLine();//换行
            ArrayInt = AddArray(ArrayInt, ArrayInt1, 3);//向数组中添加数组
            Console.WriteLine("添加后的数组:");
            foreach (int i in ArrayInt)//遍历添加后的数组
                Console.Write(i+" ");//输出添加后的数组中的元素
            Console.ReadLine();
        }
    }
}
3,删除数组中的元素
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace DelArrayNo
{
    class Program
    {
        /// <summary>
        /// 删除数组中的元素
        /// </summary>
        /// <param name="ArrayBorn">要从中删除元素的数组</param>
        /// <param name="Index">删除索引</param>
        /// <param name="Len">删除的长度</param>
        static void DeleteArray(string[] ArrayBorn, int Index, int Len)
        {
            if (Len <= 0)//判断删除长度是否小于等于0
                return;//返回
            if (Index == 0 && Len >= ArrayBorn.Length)//判断删除长度是否超出了数组范围
                Len = ArrayBorn.Length;//将删除长度设置为数组的长度
            else if ((Index + Len) >= ArrayBorn.Length)//判断删除索引和长度的和是否超出了数组范围
                Len = ArrayBorn.Length - Index - 1;//设置删除的长度
            int i = 0;//定义一个int变量,用来标识开始遍历的位置
            for (i = 0; i < ArrayBorn.Length - Index - Len; i++)//遍历删除的长度
                ArrayBorn[i + Index] = ArrayBorn[i + Len + Index];//覆盖要删除的值
            //遍历删除长度后面的数组元素值
            for (int j = (ArrayBorn.Length - 1); j > (ArrayBorn.Length - Len - 1); j--)
                ArrayBorn[j] = null;//设置数组为空
        }
        static void Main(string[] args)
        {
            string[] ArrayStr = new string[] { "m", "r", "s", "o", "f", "t" };//声明一个字符串数组
            Console.WriteLine("源数组:");
            foreach (string i in ArrayStr)//遍历源数组
                Console.Write(i+" ");//输出数组中的元素
            Console.WriteLine();//换行
            DeleteArray(ArrayStr, 0, 1);//删除数组中的元素
            Console.WriteLine("删除元素后的数组:");
            foreach (string i in ArrayStr)//遍历删除元素后的数组
                Console.Write(i+" ");//输出数组中的元素
            Console.ReadLine();
        }
    }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace DelArrayYes
{
    class Program
    {
        /// <summary>
        /// 删除数组中的元素,并改变数组的长度
        /// </summary>
        /// <param name="ArrayBorn">要从中删除元素的数组</param>
        /// <param name="Index">删除索引</param>
        /// <param name="Len">删除的长度</param>
        /// <returns>得到的新数组</returns>
        static string[] DeleteArray(string[] ArrayBorn, int Index, int Len)
        {
            if (Len <= 0)//判断删除长度是否小于等于0
                return ArrayBorn;//返回源数组
            if (Index == 0 && Len >= ArrayBorn.Length)//判断删除长度是否超出了数组范围
                Len = ArrayBorn.Length;//将删除长度设置为数组的长度
            else if ((Index + Len) >= ArrayBorn.Length)//判断删除索引和长度的和是否超出了数组范围
                Len = ArrayBorn.Length - Index - 1;//设置删除的长度
            string[] temArray = new string[ArrayBorn.Length - Len];//声明一个新的数组
            for (int i = 0; i < temArray.Length; i++)//遍历新数组
            {
                if (i >= Index)//判断遍历索引是否大于等于删除索引
                    temArray[i] = ArrayBorn[i + Len];//为遍历到的索引元素赋值
                else
                    temArray[i] = ArrayBorn[i];//为遍历到的索引元素赋值
            }
            return temArray;//返回得到的新数组
        }

        static void Main(string[] args)
        {
            string[] ArrayStr = new string[] { "m", "r", "s", "o", "f", "t" };//声明一个字符串数组
            Console.WriteLine("源数组:");
            foreach (string i in ArrayStr)//遍历源数组
                Console.Write(i + " ");//输出数组中的元素
            Console.WriteLine();//换行
            string[] newArray = DeleteArray(ArrayStr, 0, 1);//删除数组中的元素
            Console.WriteLine("删除元素后的数组:");
            foreach (string i in newArray)//遍历删除元素后的数组
                Console.Write(i + " ");//输出数组中的元素
            Console.ReadLine();
        }
    }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Test07
{
    class Program
    {
        static void Main(string[] args)
        {
            //定义两个一维数组
            int[] arr1 = new int[] { 1, 2, 3, 4, 5 };
            int[] arr2 = new int[] { 6, 7, 8, 9, 10 };
            int n = arr1.Length + arr2.Length;
            //根据定义的两个一维数组的长度的和定义一个新的一维数组
            int[] arr3 = new int[n];
            //将定义的两个一维数组中的元素添加到新的一维数组中
            for (int i = 0; i < arr3.Length; i++)
            {
                if (i < arr1.Length)
                    arr3[i] = arr1[i];
                else
                    arr3[i] = arr2[i - arr1.Length];
            }
            Console.WriteLine("合并后的一维数组:");
            foreach (int i in arr3)
                Console.Write("{0}", i + " ");
            Console.WriteLine();
            //定义一个要合并的二维数组
            int[,] arr4 = new int[2, 5];
            //将两个一维数组循环添加到二维数组中
            for (int i = 0; i < arr4.Rank; i++)
            {
                switch (i)
                {
                    case 0:
                        {
                            for (int j = 0; j < arr1.Length; j++)
                                arr4[i, j] = arr1[j];
                            break;
                        }
                    case 1:
                        {
                            for (int j = 0; j < arr2.Length; j++)
                                arr4[i, j] = arr2[j];
                            break;
                        }
                }
            }
            Console.WriteLine("合并后的二维数组:");
            //显示合并后的二维数组    
            for (int i = 0; i < arr4.Rank; i++)
            {
                for (int j = 0; j < arr4.GetUpperBound(arr4.Rank - 1) + 1; j++)
                    Console.Write(arr4[i, j] + " ");
                Console.WriteLine();
            }

        }
    }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Test08
{
    class Program
    {
        static void Main(string[] args)
        {
            int[,] arr1 = new int[2, 3] { { 1, 3, 5 }, { 2, 4, 6 } };			//定义一个二维数组,并赋值
            //定义两个一维数组,用来存储拆分的二维数组中的元素
            int[] arr2 = new int[3];
            int[] arr3 = new int[3];
            for (int i = 0; i < 2; i++)
            {
                for (int j = 0; j < 3; j++)
                {
                    switch (i)
                    {
                        case 0: arr2[j] = arr1[i, j]; break;			//判断如果是第一行中的元素,则添加到第一个中
                        case 1: arr3[j] = arr1[i, j]; break;			//判断如果是第二行中的元素,则添加到第二个中
                    }
                }
            }
            Console.WriteLine("数组一:");
            foreach (int n in arr2)								//输出拆分后的第一个一维数组
                Console.Write(n + " ");
            Console.WriteLine();
            Console.WriteLine("数组二:");						//输出拆分后的第二个一维数组
            foreach (int n in arr3)
                Console.Write(n + " ");
            Console.WriteLine();

        }
    }
}
分类:

发表评论

邮箱地址不会被公开。