【问题标题】:I want to convert an IEnumerable to List or IEnumerable我想将 IEnumerable 转换为 List 或 IEnumerable
【发布时间】:2016-09-28 06:00:51
【问题描述】:

我有一个来自服务的IEnumerable 返回列表,我需要将其映射到我的对象类型的 IEnumerable。它是直接映射:

但我收到以下错误:

System.Linq.Enumerable+WhereSelectEnumerableIterator`2

我尝试使用 Singe/First,但这并没有让应用程序自行运行,所以对我没有帮助。

private IEnumerable<Doctor> From(IEnumerable<DoctorsList> doctorList)
{
    var doctors = new List<Doctor>
    {
        new Doctor()
        {
            Name = doctorList.Select(e => e.Name).ToString() ?? null,
            Id = doctorList.Select(e => e.Id).ToString() ?? null
        }
    };

    return doctors;
}

【问题讨论】:

  • 那个对象DoctorList是什么?不应该是List&lt;Doctor&gt;吗?
  • System.Linq.Enumerable+WhereSelectEnumerableIterator2` 不是错误消息,而是类型名称。你能告诉我们错误信息是什么吗?
  • @fubo: 是的,医生没有列出来
  • @LasseV.Karlsen:我没有看到错误,但我没有得到我想要的值
  • 所以你有 2 个医生课程 - DoctorDoctorList

标签: c# .net linq list ienumerable


【解决方案1】:

我认为你可以通过使用简单的Select 来实现这一点,看看下面的代码:

private IEnumerable<Doctor> From(IEnumerable<DoctorsList> doctorList)
{
   return  doctorList.Select(x=> new Doctor()
                                {
                                   Name = x.Name?? null,
                                   Id = x.Id?? null
                               });
}

【讨论】:

  • 您接近正确,因为之前我有单独的属性并使用类似的选择之一。现在我的上级要求我使用一个对象和该对象的列表,这就是我挣扎的原因。我现在正在尝试您的解决方案,会在几分钟内通知您它的进展情况
  • 不幸的是,您的解决方案给了我运行时错误
  • 如果你告诉我错误是什么,我可以帮助你,你试过删除.Tostring()
  • 是的,我完全按照您在此处提供的操作做了,但没有错误,它在运行时中断
  • 好的,我得到了与上面粘贴的相同的错误,但是,我确实得到了具有名称和 ID 的结果视图。为什么仍然显示 system.linq 错误?
猜你喜欢
  • 2012-02-24
  • 2018-08-04
  • 1970-01-01
  • 1970-01-01
  • 2012-11-29
  • 1970-01-01
  • 2021-12-02
  • 1970-01-01
相关资源
最近更新 更多