1. ホーム
  2. c#

[解決済み] IEnumerable<T>に1つの項目を追加するLinqメソッドはありますか?

2023-08-09 06:56:09

質問

このようなことをしようとしています。

image.Layers

を返します。 IEnumerable<Layer> を除く全てのレイヤーに対して Parent レイヤーを除いて、しかし場合によっては、そうしたいだけです。

image.Layers.With(image.ParentLayer);

で満たされている通常の使い方の100箇所に比べて、数箇所しか使われていないからです。 image.Layers . を返すようなプロパティはもう作りたくないわけです。 Parent レイヤーを返すような別のプロパティを作りたくないのです。

どのように解決するのですか?

一つの方法として、アイテムからシングルトン・シーケンスを作成し(配列など)、その後に Concat を元の項目の上に置くことです。

image.Layers.Concat(new[] { image.ParentLayer } )

もし、このようなことを頻繁に行うのであれば、「Security(セキュリティー)」を書くことを検討してください。 Append (のような拡張メソッドです。 ここに掲載 をさせることができるだろう。

image.Layers.Append(image.ParentLayer)

.NET Coreアップデート ( 以下のベストアンサーに該当します。 ):

AppendPrepend が.NET Standardフレームワークに追加されたので、自分で書く必要がなくなりました。これを実行するだけです。

image.Layers.Append(image.ParentLayer)