【问题标题】:Array int for query db用于查询数据库的数组 int
【发布时间】:2012-07-23 21:58:28
【问题描述】:
MySqlCommand cmd = new MySqlCommand("select id from table", conn);
MySqlDataReader dr = cmd.ExecuteReader();

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

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

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

【问题讨论】:

    标签: c# .net mysql ado.net


    【解决方案1】:

    使用这个:

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

    【讨论】:

      【解决方案2】:

      你可以使用yield迭代器

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-08-12
        • 2015-09-18
        • 2018-10-24
        • 2018-08-04
        • 1970-01-01
        • 2017-09-29
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多