【问题标题】:how to parse data from array of objects如何从对象数组中解析数据
【发布时间】:2016-08-02 20:05:12
【问题描述】:

我得到了 ienumerable 方法,我从数据库中读取数据并将这些数据放入对象数组中

while (reader.Read())
{
    var values = new object[reader.FieldCount];
    reader.GetValues(values);
    yield return values;
}

在另一种方法中,我正在迭代这些对象

foreach (var items in repo.ExecuteReader()
   {
        rss.Id = items[0]; // not work
        yield return items;
   }

如何索引“项目”数组?

【问题讨论】:

  • Items 的类型是什么?是object[] 吗?
  • “//不工作”是什么意思?
  • @Hari 是的,公共 IEnumerable ExecuteReader()
  • 试试这个foreach (object[] items in repo.ExecuteReader())
  • 很高兴它解决了您的问题。

标签: c# arrays object indexing sqldatareader


【解决方案1】:

尝试先施法,见下图:

foreach (var items in repo.ExecuteReader()
   {
        var obj[] = (object[])items;
        rss.Id = obj[0];
        yield return obj;
   }

【讨论】:

    【解决方案2】:
    SqlDataReader reader = repo.ExecuteReader();
    while (reader.reas.Read()) {
           rss.Id = (int)reader[0]; // should work
    

    更新

    试试这个


    ExecuteReader() 方法的结果必须先拆箱(看起来像强制转换,但这是拆箱)到正确的类型,然后才能分配给对象或变量。

    Are you asking why?

    【讨论】:

    • 它说:“不能用 [] 将索引应用于 'object' 类型的表达式”
    【解决方案3】:

    解决方案由Hari Prasad提供,只需从

       foreach (var items in repo.ExecuteReader()) {} 
    

       foreach (var object[] items in repo.ExecuteReader()
    

    现在索引和转换正在工作

    【讨论】:

      猜你喜欢
      • 2019-11-02
      • 1970-01-01
      • 1970-01-01
      • 2016-09-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-01
      • 2019-01-14
      相关资源
      最近更新 更多