【问题标题】:Need a SelectListItem, not IEnumerable<SelectListItem>需要一个 SelectListItem,而不是 IEnumerable<SelectListItem>
【发布时间】:2017-05-03 21:37:02
【问题描述】:

所以有了这个:

var eventDates = Context.Waves.Where(w => w.EventId == vipCode.EventId)
    .ToList()
    .Select(w => new SelectListItem
        {
            Text = w.StartDateTime.ToString("D"),
            Value = w.WaveId.ToString()
        });

似乎eventDatesIEnumerable&lt;SelectListItem&gt;。如何让它成为实际的SelectListItem

如果我改变:

 var eventDates =

收件人:

SelectListItem eventDates =

我明白了:

无法将类型“System.Collections.Generic.IEnumerable”隐式转换为“System.Web.Mvc.SelectListItem”。

编辑:

看来我需要更清楚一点。很公平!

我正在尝试将这三个日期放入下拉列表中。

【问题讨论】:

  • 你的意思是什么?
  • 您要选择什么?那个可枚举只包含一个元素吗?
  • 为什么要将它设为SelectListitem?现在有多个SelectListItem 类型的项目
  • 我认为你应该使用 First() 或 FirstOrDefault()。
  • 当然 Select 返回一个 IEnumerable。 Select 的结果是与选择标准匹配的所有项目 - 因此结果类型是 IEnumerable (因为结果可以是从零到多个“选定”项目的任何内容)......

标签: c# linq


【解决方案1】:

您现在拥有的东西完全符合您的需求 - 多个项目在一个 SelectList 中。

您缺少的是您需要新建一个SelectList,其Items 属性与您的IEnumerable&lt;SelectListItem&gt; 匹配。

【讨论】:

  • 您介意删除您的答案以便我删除这个问题吗?
  • 是的,我会介意的。希望这个答案能帮助你所在位置的其他人(这就是 Stack Overflow 的全部意义所在)。
猜你喜欢
  • 2015-11-07
  • 1970-01-01
  • 2016-06-25
  • 2022-07-12
  • 2013-12-21
  • 1970-01-01
  • 1970-01-01
  • 2017-07-15
  • 1970-01-01
相关资源
最近更新 更多