返回动态生成的数组的方法
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[]的数组元素时则需要拆箱,这样频繁的装箱和拆箱操作会不会降低方法的效率,尤其是返回的数据比较多的情况下,不知道是否有更好的方法?
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[]的数组元素时则需要拆箱,这样频繁的装箱和拆箱操作会不会降低方法的效率,尤其是返回的数据比较多的情况下,不知道是否有更好的方法?
相关文章推荐
- Python动态生成多维数组的方法示例
- Shell动态生成数组的多种方法
- Shell动态生成数组的多种方法
- C++函数返回数组及动态建立二维数组的方法
- “对于不返回任何键列信息的 SelectCommand,不支持 UpdateCommand 的动态 SQL 生成”解决方法
- python 调用 DLL 的函数,返回的字符串数组的食用方法
- 发布一个类似Subsonic语法的动态生成SQL语句,并可以返回相应实体类的一个组件
- JavaScript动态生成访问方法
- [留着备用]ASP.NET动态菜单生成通用方法
- javascript中动态生成div无效解决方法
- 生成动态随机数组,并赋值随机序列(不重复)!
- mybits对于数据库返回的结果集为动态时用JSONObjst接收方法
- C语言动态数组建立方法
- 动态生成的html中无法使用jquery事件的解决方法
- 《C++ Primer》学习 之 返回数组的引用(返回数组的指针,方法与之相同)
- asp.net下用Aspose.Words for .NET动态生成word文档中的图片或水印的方法
- jquery无法为动态生成的元素添加点击事件的解决方法
- 使用.net 中的动态方法编程备忘录1(如何查看生成的动态方法的代码)
- 对于“不返回任何键列信息的 SelectCommand 不支持 UpdateCommand 的动态 SQL 生成”问题的解决
- 输入一个数组长度,动态创建数组,所有元素随机生成,输出元素中最大值