ExpandoObjectで動的LINQを使用してGroupByを実行することは可能ですか?
以下の例を検討してください。理想的には、ExpandoObjectsのグループ化されたリストが欲しいです。
お時間をいただきありがとうございます。
var listOfExpandoObjects = new List<ExpandoObject>();
var expandoObject = new ExpandoObject();
((IDictionary<string, object>)expandoObject).Add("DynamicProperty", "RepeatedItem");
((IDictionary<string, object>)expandoObject).Add("OtherProperty", "First");
listOfExpandoObjects.Add(expandoObject);
expandoObject = new ExpandoObject();
((IDictionary<string, object>)expandoObject).Add("DynamicProperty", "RepeatedItem");
((IDictionary<string, object>)expandoObject).Add("OtherProperty", "Second");
listOfExpandoObjects.Add(expandoObject);
var dynamicGroupBy = "new ( it[\"DynamicProperty\"] )";
var groupedItems = listOfExpandoObjects.GroupBy(dynamicGroupBy, "it"); // <------- Error: 'No applicable indexer exists in type 'ExpandoObject''
あなたはこのようなものが欲しいと思います
dynamic expandoObject = new ExpandoObject();
expandoObject.DynamicProperty = " RepeatedItem";
expandoObject.OtherProperty = "First";
dynamic secondExpandoObject = new ExpandoObject();
secondExpandoObject.DynamicProperty = "RepeatedItem";
secondExpandoObject.OtherProperty = "Second";
var listOfExpandoObjects = new List<dynamic> { expandoObject, secondExpandoObject };
var dynamicProperty = "DynamicProperty";
var groupedItems =
from IDictionary<string, object> expando in listOfExpandoObjects
group expando by expando[dynamicProperty];