zoukankan      html  css  js  c++  java
  • 数组的基本操作(二)

    一:在数组中添加一个元素,截图

    二:代码

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    
    namespace AddElementInArray
    {
        public partial class Frm_Main : Form
        {
            public Frm_Main()
            {
                InitializeComponent();
            }
            private int[] G_int_array = new int[8];//定义数组类型变量
            /// <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;//返回插入元素后的新数组
            }
    
            private void btn_RArray_Click(object sender, EventArgs e)
            {
                txt_RArray.Clear();//清空文本框
                //使用循环赋值
                for (int i = 0; i < G_int_array.GetUpperBound(0) + 1; i++)
                {
                    G_int_array[i] = i;
                }
                //使用循环输出
                for (int i = 0; i < G_int_array.GetUpperBound(0) + 1; i++)
                {
                    txt_RArray.Text += G_int_array[i] + " ";
                }
            }
    
            private void btn_Sure_Click(object sender, EventArgs e)
            {
                rtbox_NArray.Clear();//清空文本框
                G_int_array = AddArray(G_int_array, 4, Convert.ToInt32(txt_Element.Text));//调用自定义方法向数组中插入单个元素
                //使用循环输出
                for (int i = 0; i < G_int_array.GetUpperBound(0) + 1; i++)
                {
                    rtbox_NArray.Text += G_int_array[i] + " ";
                }
            }
        }
    }

    三:在数组中添加一个数组,截图

    四:代码

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    
    namespace AddArrayInArray
    {
        public partial class Frm_Main : Form
        {
            public Frm_Main()
            {
                InitializeComponent();
            }
            private int[] G_int_array = new int[8];//定义数组类型变量
            private int[] G_int_Narray = new int[4];//定义数组类型变量
            /// <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;//返回添加数组后的新数组
            }
    
            private void btn_RArray_Click(object sender, EventArgs e)
            {
                txt_RArray.Clear();//清空文本框
                //使用循环赋值
                for (int i = 0; i < G_int_array.GetUpperBound(0) + 1; i++)
                {
                    G_int_array[i] = i;
                }
                //使用循环输出
                for (int i = 0; i < G_int_array.GetUpperBound(0) + 1; i++)
                {
                    txt_RArray.Text += G_int_array[i] + " ";
                }
            }
    
    
            private void btn_NArray_Click(object sender, EventArgs e)
            {
                txt_NArray.Clear();//清空文本框
                //使用循环赋值
                for (int i = 0; i < G_int_Narray.GetUpperBound(0) + 1; i++)
                {
                    G_int_Narray[i] = i;
                }
                //使用循环输出
                for (int i = 0; i < G_int_Narray.GetUpperBound(0) + 1; i++)
                {
                    txt_NArray.Text += G_int_Narray[i] + " ";
                }
            }
    
            private void btn_Sure_Click(object sender, EventArgs e)
            {
                rtbox_NArray.Clear();//清空文本框
                G_int_array = AddArray(G_int_array, G_int_Narray,5);//调用自定义方法向数组中插入数组
                //使用循环输出
                for (int i = 0; i < G_int_array.GetUpperBound(0) + 1; i++)
                {
                    rtbox_NArray.Text += G_int_array[i] + " ";
                }
            }
        }
    }

    五:不改变长度删除数组中的元素,截图

    六:代码

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    
    namespace DelArrayNoLength
    {
        public partial class Frm_Main : Form
        {
            public Frm_Main()
            {
                InitializeComponent();
            }
            private int[] G_int_array = new int[8];//定义数组类型变量
            /// <summary>
            /// 删除数组中的元素
            /// </summary>
            /// <param name="ArrayBorn">要从中删除元素的数组</param>
            /// <param name="Index">删除索引</param>
            /// <param name="Len">删除的长度</param>
            static void DeleteArray(int[] 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] = 0;//设置数组为0
            }
    
            private void btn_RArray_Click(object sender, EventArgs e)
            {
                txt_RArray.Clear();//清空文本框
                //使用循环赋值
                for (int i = 0; i < G_int_array.GetUpperBound(0) + 1; i++)
                {
                    G_int_array[i] = i;
                }
                //使用循环输出
                for (int i = 0; i < G_int_array.GetUpperBound(0) + 1; i++)
                {
                    txt_RArray.Text += G_int_array[i] + " ";
                }
            }
    
            private void btn_Sure_Click(object sender, EventArgs e)
            {
                rtbox_NArray.Clear();//清空文本框
                DeleteArray(G_int_array, Convert.ToInt32(txt_Index.Text), Convert.ToInt32(txt_Num.Text));//删除数组中的元素
                //使用循环输出删除元素的数组
                for (int i = 0; i < G_int_array.GetUpperBound(0) + 1; i++)
                {
                    rtbox_NArray.Text += G_int_array[i] + " ";
                }
            }
        }
    }

    七:不改变长度删除数组中的元素,截图

    八:代码

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    
    namespace DelArrayYesLength
    {
        public partial class Frm_Main : Form
        {
            public Frm_Main()
            {
                InitializeComponent();
            }
            private int[] G_int_array = new int[8];//定义数组类型变量
            /// <summary>
            /// 删除数组中的元素,并改变数组的长度
            /// </summary>
            /// <param name="ArrayBorn">要从中删除元素的数组</param>
            /// <param name="Index">删除索引</param>
            /// <param name="Len">删除的长度</param>
            /// <returns>得到的新数组</returns>
            static int[] DeleteArray(int[] 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;//设置删除的长度
                int[] temArray = new int[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;//返回得到的新数组
            }
    
            private void btn_RArray_Click(object sender, EventArgs e)
            {
                txt_RArray.Clear();//清空文本框
                //使用循环赋值
                for (int i = 0; i < G_int_array.GetUpperBound(0) + 1; i++)
                {
                    G_int_array[i] = i;
                }
                //使用循环输出
                for (int i = 0; i < G_int_array.GetUpperBound(0) + 1; i++)
                {
                    txt_RArray.Text += G_int_array[i] + " ";
                }
            }
    
            private void btn_Sure_Click(object sender, EventArgs e)
            {
                rtbox_NArray.Clear();//清空文本框
                G_int_array = DeleteArray(G_int_array, Convert.ToInt32(txt_Index.Text), Convert.ToInt32(txt_Num.Text));//删除数组中的元素
                //使用循环输出删除元素的数组
                for (int i = 0; i < G_int_array.GetUpperBound(0) + 1; i++)
                {
                    rtbox_NArray.Text += G_int_array[i] + " ";
                }
            }
        }
    }
  • 相关阅读:
    日期格式,Popup的使用方法,RenderTransform与LayoutTransform的区别
    Status 网络
    以太坊: RLP 编码原理
    Merkle Patricia Tree 梅克尔帕特里夏树(MPT)详细介绍
    【转】货币的未来取决于打破关于货币历史的虚构谎言
    区块链上的保险
    Trustlines Network:以太坊上实现 Ripple 瑞波协议
    通过 BTC Relay 来实现链与链的连接
    PoW模式下交易平均要35秒,为什么为拥堵
    使用以太坊和 Metamask 再也不需要输入密码
  • 原文地址:https://www.cnblogs.com/hongmaju/p/3773015.html
Copyright © 2011-2022 走看看