をラップし、IEnumerable<T>
いくつかの追加ロジックを含むタイプがあり、これを呼び出すインターフェイスを実装していますIMyIterable<T>
。LINQメソッドを使用してIMyIterable<T>
(実際に基になるオブジェクトに適用することで)フィルタリングと処理を行う必要がある一方で、IMyIterable<T>
カスタムインスタンス機能(状態情報など)を流暢に公開したいのですが、 LINQメソッドが適用されました。例えば
var query = myIterable.Select(x => x.whatever);
//query is now of a completely different type than IMyIterable<T>
var result = query.MyCustomThingy();
//But I really want MyCustomThingy to work too.
私は解決策が次のようになることを知っています:
var query = myIterable.Linq(x => x.Select(y => y.Whatever));
しかし、余分な括弧は私には見苦しいです。私がこれを行うことができる他の方法はありますか?私は実際にSelect()
カスタムクラスを返すメソッドを求めているのではなく(コード生成を含むなど、これを行うためのきちんとした方法があれば、私は間違いなく乗っています)、いくつかのきちんとした構文だけです。