2017-05-07 17 views
0

ExpandoObject를 사용하여 동적 LINQ를 사용하여 GroupBy를 수행 할 수 있습니까?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'' 

답변

0

난 당신이

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]; 
뭔가를 원한다고 생각