【发布时间】:2012-07-23 21:58:28
【问题描述】:
MySqlCommand cmd = new MySqlCommand("select id from table", conn);
MySqlDataReader dr = cmd.ExecuteReader();
例如我得到 4 行,所以 23,3,12,9
我怎样才能得到这个整数的数组?
int[] arr = { 23, 3, 12, 9 };
【问题讨论】:
MySqlCommand cmd = new MySqlCommand("select id from table", conn);
MySqlDataReader dr = cmd.ExecuteReader();
例如我得到 4 行,所以 23,3,12,9
我怎样才能得到这个整数的数组?
int[] arr = { 23, 3, 12, 9 };
【问题讨论】:
使用这个:
IEnumerable<int> r;
using (reader)
{
r = Read(reader);
}
int[] arr = r.ToArray();
您可以通过各种方式实现该方法:
private static IEnumerable<int> Read(IDataReader reader)
{
IList<int> list = new List<int>();
while (reader.Read())
{
list.Add(reader.GetInt32(0));
}
return list;
}
或(扩展阿吉拉斯的答案):
private static IEnumerable<int> Read(IDataReader reader)
{
while (reader.Read())
{
yield return reader.GetInt32(0);
}
}
【讨论】:
你可以使用yield迭代器
while(reader.Read()
{
yield return reader.GetInt32(0);
}
【讨论】: