1

動的オブジェクトのプロパティ名を文字列形式の int として割り当てています。int 値は、使用しているデータベースの int ID を表します。ただし、以下に示すように、プロパティに割り当てられた値を取得する方法に行き詰まっています。

dynamic test = new ExpandoObject()
IDictionary<string, object> proxyFiler = test as IDictionary<string, object>;
proxyFiler["four"] = 4;
proxyFiler["5"] = 5;
int r = test.four; // Works
int s = test.5; // Doesn't work

データベースを読み取るメソッドは「int」を返すため、そのプロパティ名でプロパティ値にアクセスできるようにしたいと考えています。

さらに詳しく説明すると、linq クエリを実行して動的オブジェクトのリストをプロパティ名に従って並べ替えたい場合はどうすればよいでしょうか。この場合、「15」などの文字列として取得した propertyName を取得する必要があります。

 return disorderedList.OrderBy(o => o.propertyName).ToList();

誰かがこの問題の簡単な解決策を知っていますか、それとも別のアプローチをお勧めしますか? ありがとう。

4

1 に答える 1