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

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

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

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

2 回答 2

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

或(扩展阿吉拉斯的回答):

private static IEnumerable<int> Read(IDataReader reader)
{
    while (reader.Read())
    {
        yield return reader.GetInt32(0);
    }
}
于 2012-07-25T13:00:21.767 回答
1

你可以使用产量迭代器

while(reader.Read()
{
    yield return reader.GetInt32(0);
}
于 2012-07-25T13:00:17.223 回答