X のコレクションをバインドしたくないデータ ソースがあります。X には、特定のタイプ Y のプロパティのサブセットが含まれている必要があります (Y にプロパティ PropOne、PropTwo、PropThree があるとします)。これはもちろん、匿名型で行うことができます。
void DoBind()
{
myGrid.DataSource = myCollectionOfYs.Select(y => new {y.PropOne, y.PropTwo});
}
このメソッドを変更して、呼び出し元がプロジェクションで使用するプロパティをタイプセーフな方法で指定できるようにするにはどうすればよいですか? つまり、次のようなものです。
var expressions = new List<Expression<Func<Y, object>>>();
expressions.Add(y => y.PropOne);
expressions.Add(y => y.PropTwo);
DoBind(expressions);