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;
}
または(Aghilasの答えを拡張):
private static IEnumerable<int> Read(IDataReader reader)
{
while (reader.Read())
{
yield return reader.GetInt32(0);
}
}
利回りイテレータを使用できます
while(reader.Read()
{
yield return reader.GetInt32(0);
}