您的位置:首页 > 其它

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

2006-04-29 15:11 405 查看
今天在写程序时,遇到需要根据数据查询返回的值动态生成数组的方法,.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[]的数组元素时则需要拆箱,这样频繁的装箱和拆箱操作会不会降低方法的效率,尤其是返回的数据比较多的情况下,不知道是否有更好的方法?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: