问题:
谁能告诉我如何在linq中返回值。
我想返回RadToolBarButtons的集合,并在创建时为其分配值。

码:
我尝试了两种方式:

IEnumerable<RadToolBarButton> collection = ContextMenuColumn.ToList()
      .ForEach(x => yield return new RadToolBarButton() { Value = x });


错误11无法将类型'void'隐式转换为'System.Collections.Generic.IEnumerable'

IEnumerable<RadToolBarButton> collection =
    ContextMenuColumn.SelectMany<string,IEnumerable<RadToolBarButton>>(
       x => new RadToolBarButton() { Value = x });


错误11无法将类型'Telerik.Web.UI.RadToolBarButton'隐式转换为'System.Collections.Generic.IEnumerable>'。存在显式转换(您是否缺少演员表?)

最佳答案

您应该使用Select而不是ForEach,它可以满足您的需求。

IEnumerable<RadToolBarButton> collection = ContextMenuColumn.ToList()
  .Select(x => new RadToolBarButton { Value = x });


我不确定是否需要内部ToList,您也许可以摆脱Cast<T>而不是实现中间列表。

10-04 10:40