转 :asp教程.net c#数组遍历、排序、删除元素、插入、随机元素 数组遍历

asp教程.net c#数组遍历、排序、删除元素、插入、随机元素
数组遍历

short[] sts={0,1,100,200};
for(int i=0;i<sts.lenght;i++)
{
  if(sts[i]>50)
 {
  .....
  }
}


数组随机元素

public  hashtable  noorder(int count) 
        { 
            arraylist mylist = new arraylist(); 
            hashtable hash = new hashtable(); 
            random r=new random (); 
            for (int i = 0; i < count; i++) 
            { 
                mylist.add(i); 
            } 
            int listcount=mylist.count; 
            for (int i = 0; i < listcount; i++) 
            { 
               int rand= r.next(mylist.count); 
               hash.add(mylist[rand],i ); 
               mylist.removeat(rand); 
            } 
            return hash; 
        }  


 

看一个数组操作类

using system;
using system.collections.generic;
using system.text;
using system.text.regularexpressions;
using system.windows.forms;
namespace arr
{
    /*
     * 实现功能:
     * 向数组中添加一个值,不需再手动扩展数组大小
     * 两个数组相加
     * 去除数组中指定的项
     * 去除数组中重复的项(数字或字符串都行。字符串有两种算法,各位同仁自行比较优劣)
     * 移除数组中部分相同的项,估计不常用,以前自己需要时写上去的,很久没用了。
     * 对数组重新排序(数字数组可由大到小或由小到大,带数字和字符串数组仅进行了降序排列)
     * 获取数组内重复最多的项,仅做了string数组,数字数组如果大家需要,可自行添加,算法一样。
     * ps教程:本人对c#不算老鸟,如果算法中有失误的地方,还请原谅。
     * 交流qq:9729052
    */
    class array
    {
        #region 向数组添加一个值
        public static string[] arrayadditem(string[] arr, string item)
        {
            string[] _arr = new string[arr.length + 1];
            arr.copyto(_arr, 0);
            _arr[arr.length] = item;
            return _arr;
        }

        public static string[][] arrayadditem(string[][] motherarray, string[] arr)
        {
            string[][] _arr = new string[motherarray.length + 1][];
            motherarray.copyto(_arr, 0);
            _arr[motherarray.length] = arr;
            return _arr;
        }
        #endregion

        #region 去除数组中指定的项
        /// <summary>
        /// 去除数组中指定的项
        /// </summary>
        /// <param name="arr">一个字符串数组</param>
        /// <param name="index">索引项</param>
        /// <returns></returns>
        public static string[] removeat(string[] arr, int index)
        {
            if (index >= arr.length || index < 0)
            {
                return arr;
            }
            else
            {
                string[] newarr = new string[arr.length - 1];
                array.copy(arr, 0, newarr, 0, index);
                array.copy(arr, index + 1, newarr, index, newarr.length - index);
                return newarr;
            }
        }

        /// <summary>
        /// 去除数组中指定的项
        /// </summary>
        /// <param name="arr">一个数字数组</param>
        /// <param name="index">索引项</param>
        /// <returns></returns>
        public static int[] removeat(int[] arr, int index)
        {
            if (index >= arr.length || index < 0)
            {
                return arr;
            }
            else
            {
                int[] newarr = new int[arr.length - 1];
                array.copy(arr, 0, newarr, 0, index);
                array.copy(arr, index + 1, newarr, index, newarr.length - index);
                return newarr;
            }
        }
        #endregion

        #region 数组相加
        /// <summary>
        /// 数组相加
        /// </summary>
        /// <param name="arrays">由一维数组组成的二维数组</param>
        /// <returns></returns>
        public static string[] arrayadd(string[][] arrays)
        {
            /*例:
             * string[] array1={ };
             *string[] array2={"1","2","3"};
             *string[] array3={"ab","cd","ef"};
             *string[][] arrays={array1,array2,array3};
             *string[] newarray=array.arrayadd(arrays);
            */
            int itemsnumber = 0;
            for (int i = 0; i < arrays.length; i++)
            {
                if (arrays[i] == null)
                    continue;
                else
                    itemsnumber += arrays[i].length;
            }
            int enditemnumber = 0;

            string[] newarray = new string[itemsnumber];

            for (int i = 0; i < arrays.length; i++)
            {
                if (arrays[i] != null)
                {
                    arrays[i].copyto(newarray, enditemnumber);
                    enditemnumber += arrays[i].length;
                }
            }

            return newarray;
        }

        public static int[] arrayadd(int[][] arrays)
        {
            int itemsnumber = 0;
            //system.windows.forms.messagebox.show(arrays.length + ":走到这里了");
            for (int i = 0; i < arrays.length; i++)
            {
                if (arrays[i] == null)
                    continue;
                else
                    itemsnumber += arrays[i].length;
            }
            int enditemnumber = 0;

            int[] newarray = new int[itemsnumber];

            for (int i = 0; i < arrays.length; i++)
            {
                if (arrays[i] != null)
                {
                    arrays[i].copyto(newarray, enditemnumber);
                    enditemnumber += arrays[i].length;
                }
            }

            return newarray;
        }
        #endregion

例如:

string aa=“12,13,14,15,16”;那么怎么让它一个一个的插入数据库教程呢?其思路如下:
string[] comids=aa.split(',');
    foreach(string id in comids)
    {
     if(id!="")
     {
      txtsqlinsert +="insert into comidlist(uemail,comids,sendtime) values('"+this.txtmail.value+"','"+id+"',default)";
     }
    }
    dbcon.upconnection(txtsqlinsert);//这个就是一个传入一个sql语句很常用的函数了。

/// <summary>
   /// 执行sql语句什么都不返回
   /// </summary>
   /// <param name="sqlstr"></param>
   public static void upconnection(string sqlstr)
   {
    sqlconnection con=new sqlconnection(constr);
   
    sqlcommand cmd=new sqlcommand(sqlstr,con);
    con.open();
    cmd.executenonquery();//执行t-sql语句,并返回受影响的行数
    con.close();
   }

你可能感兴趣的:(转 :asp教程.net c#数组遍历、排序、删除元素、插入、随机元素 数组遍历)