首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >linq中的yield foreach

linq中的yield foreach
EN

Stack Overflow用户
提问于 2012-08-05 18:57:06
回答 2查看 7.8K关注 0票数 3

问题:有人能告诉我如何在linq中返回值吗?我想返回一个RadToolBarButtons集合,并在创建时为它们赋值。

代码:我尝试了两种方式:

代码语言:javascript
复制
IEnumerable<RadToolBarButton> collection = ContextMenuColumn.ToList()
      .ForEach(x => yield return new RadToolBarButton() { Value = x });

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

代码语言:javascript
复制
IEnumerable<RadToolBarButton> collection =
    ContextMenuColumn.SelectMany<string,IEnumerable<RadToolBarButton>>(
       x => new RadToolBarButton() { Value = x });

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-08-05 19:00:02

你应该使用Select而不是ForEach,它能做你想要的事情。

代码语言:javascript
复制
IEnumerable<RadToolBarButton> collection = ContextMenuColumn.ToList()
  .Select(x => new RadToolBarButton { Value = x });

我不确定内部ToList是否是必要的,您也许可以使用Cast<T>而不是物化中间列表。

票数 5
EN

Stack Overflow用户

发布于 2012-08-05 18:59:59

使用Select而不是ForEach,它将为您执行yield returm

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11815841

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档