用于查询db的数组int

时间:2012-07-25 12:58:03

标签: c# .net mysql ado.net

MySqlCommand cmd = new MySqlCommand("select id from table", conn);
MySqlDataReader dr = cmd.ExecuteReader();

例如我得到4行,所以23,3,12,9

我怎么能得到这个整数的数组?

int[] arr = { 23, 3, 12, 9 };

2 个答案:

答案 0 :(得分:2)

使用此:

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;
}

或(扩展Aghilas的回答):

private static IEnumerable<int> Read(IDataReader reader)
{
    while (reader.Read())
    {
        yield return reader.GetInt32(0);
    }
}

答案 1 :(得分:1)

你可以使用yield iterator

while(reader.Read()
{
    yield return reader.GetInt32(0);
}