问题:
谁能告诉我如何在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>
而不是实现中间列表。