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

または(Aghilasの答えを拡張):

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 に答える