• 返回动态生成的数组的方法


    今天在写程序时,遇到需要根据数据查询返回的值动态生成数组的方法,.NET中类库中的ArrayList类是可以动态生成数组的类,于是用它写了一个方法大致如下:

    public int[] Get(int ID)
                
    {
                    
    using (SqlConnection conn = new SqlConnection(ConnectionStr))
                    
    {
                        SqlCommand cmd 
    = new SqlCommand();
                        cmd.Connection 
    = conn;
                        cmd.CommandText 
    = "Select * From Table Where ID='"+ID"'";            

                        conn.Open();
                        SqlDataReader rdr 
    = cmd.ExecuteReader();

                        
    int item;
                        ArrayList result 
    = new ArrayList();
                        
    while (rdr.Read())
                        
    {
                            item 
    = rdr.GetInt16(0);
                            result.Add(item);
                        }

                
                        conn.Close();

                        
    if (result.Count > 0)
                        
    {
                            
    int count = result.Count;
                            
    int[] arrResult = new int[count];
                    
                            
    for (int i=0;i<count;i++)
                            
    {
                                arrResult[i] 
    = (int)result[i];
                            }

                            
    return arrResult;
                        }

                    }


                    
    return null;
                }


    这样虽然可以完成我想要的功能,但是在把简单数据类型添加到ArrayList中时都需要装箱,而把ArrayList中的数据取出来赋给int[]的数组元素时则需要拆箱,这样频繁的装箱和拆箱操作会不会降低方法的效率,尤其是返回的数据比较多的情况下,不知道是否有更好的方法?

  • 相关阅读:
    【bzoj2821】作诗(Poetize)
    ZOJ-2112-Dynamic Rankings(线段树套splay树)
    POJ- 2104 hdu 2665 (区间第k小 可持久化线段树)
    hust-1024-dance party(最大流--枚举,可行流判断)
    hdu-3046-Pleasant sheep and big big wolf(最大流最小割)
    POJ-3294-Life Forms(后缀数组-不小于 k 个字符串中的最长子串)
    POJ-Common Substrings(后缀数组-长度不小于 k 的公共子串的个数)
    POJ-2774-Long Long Message(后缀数组-最长公共子串)
    POJ-3693-Maximum repetition substring(后缀数组-重复次数最多的连续重复子串)
    spoj-694-Distinct Substrings(后缀数组)
  • 原文地址:https://www.cnblogs.com/supersand/p/388701.html
Copyright © 2020-2023  润新知