3

問題:linqで値を返す方法を教えてもらえますか?RadToolBarButtonのコレクションを返し、作成時にそれらに値を割り当てたいと思います。

コード:私は2つの方法で試しました:

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>'に暗黙的に変換できません。明示的な変換が存在します(キャストがありませんか?)

4

2 に答える 2

5

Selectの代わりに使用する必要がありますForEach、それはあなたが探していることをします。

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

インナーが必要かどうかはわかりませんが、中間リストを具体化する代わりに、ToList逃げることができるかもしれません。Cast<T>

于 2012-08-05T11:00:02.463 に答える
1

Selectの代わりに使用してくださいForEach、それはあなたのyield returnためになります

于 2012-08-05T10:59:59.460 に答える