我正嘗試使用Linq將List<Person>
分組。Linq GroupBy具有動態屬性的匿名類型
var grouped = personList.GroupBy(x => new { x.Forename, x.Age })
.Select(x => new { Description = x.Key, Count = x.Count() });
我該如何製作將被分組的屬性來自一個變量?
var groupByProperties = new string[] { "Forename", "Age" };
personList.GroupBy(x => new { ............ })
.Select(x => new { Description = x.Key, Count = x.Count() });
groupByProperties
將來自用戶輸入網頁上(<select multiple>
)。
我不能完全理解ExpandoObject
或dynamic
的正確語法,並且不確定是否需要在此處使用反射。
Person類可能看起來像:
public class Person
{
public string Forename { get; set; }
public string Surname { get; set; }
public int Age { get; set; }
public string Gender { get; set; }
}
結果是通過對UI(網頁)爲JSON,從一個DataGrid將產生傳遞回來。我將使用JavaScript循環返回的Description對象,並從中生成網格。
不要在LINQ使用ExpandoObject因爲這可能會導致內存泄漏 – dr4cul4
目前尚不清楚你想怎麼這個是動態的 - 它仍然是一個編譯時的選擇呢?你需要*整個*組鍵作爲描述屬性嗎?之後你對結果做什麼? –
@ dr4cul4:謹慎地闡述和/或提供參考/證據? –