[英]Dynamic object using group values as keys
我正在使用EntityFramework開發Asp.Net WebAPI,並且需要使用動態值作為鍵來返回一些定義。 定義存儲在定義表中,如下所示:
NICK VALUE DESCRIPTION
------ ----- --------------
GRADE 1 Very low
GRADE 2 Low
GRADE 3 Fair
GRADE 4 High
GRADE 5 Very high
CONTROL 1 There is no control
CONTROL 2 Control is fairly structured
... ... ...
而不是像往常一樣獲取定義的列表:
[ { "nick": "GRADE", "value": 1, "description": "Very low" },
{ "nick": "GRADE", "value": 2, "description": "Low" }, ...
]
我想要以下結構:
[ "GRADE": [
{ "value": 1, "description": "Very low" },
{"value": 1, "description": "Low" } ...
],
"CONTROL": [ ... ]
]
使用WebAPi函數,例如:
public Dictionary<string, List<ValueDescription>> GetDefinitions()
其中ValueDescription是一個簡單的類,如下所示:
public class ValueDescription {
public int Value { get; set; }
public string Description { get; set; }
}
我嘗試了許多方法,但是我不知道如何獲得帶有動態鍵名的結構。 有人可以給我一個提示嗎? 提前致謝。
您可以按NICK
對定義進行分組,然后使用ToDictionary
方法將組Key
作為字典鍵傳遞,並將組元素投影到ValueDescription
列表中作為字典值。
像這樣:
var result = db.Definitions
.GroupBy(e => e.NICK)
.ToDictionary(g => g.Key, g => g.Select(e => new ValueDescription
{
Value = e.VALUE,
Description = e.DESCRIPTION,
}).ToList());
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.