C# 查询数据库的数组int

C# 查询数据库的数组int,c#,.net,mysql,ado.net,C#,.net,Mysql,Ado.net,例如,我得到4行,23,3,12,9 如何得到这个整数 MySqlCommand cmd = new MySqlCommand("select id from table", conn); MySqlDataReader dr = cmd.ExecuteReader(); 您可以使用yield迭代器 int[] arr = { 23, 3, 12, 9 }; 使用以下命令: while(reader.Read() { yield return reader.GetInt32(0);

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

如何得到这个整数

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

您可以使用yield迭代器

int[] arr = { 23, 3, 12, 9 };
使用以下命令:

while(reader.Read()
{
    yield return reader.GetInt32(0);
}
IEnumerable r;
使用(读卡器)
{
r=读取(读卡器);
}
int[]arr=r.ToArray();
您可以通过各种方式实现该方法:

IEnumerable<int> r;
using (reader)
{
    r = Read(reader);
}
int[] arr = r.ToArray();
私有静态IEnumerable读(IDataReader读卡器)
{
IList list=新列表();
while(reader.Read())
{
list.Add(reader.GetInt32(0));
}
退货清单;
}
或者(扩展Aghilas的回答):

私有静态IEnumerable读(IDataReader读卡器)
{
while(reader.Read())
{
产生返回读取器GetInt32(0);
}
}
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);
    }
}