[英]LINQ query return
我正在使用highcharts來顯示一些數據......但是由於我的查詢沒有以正確的格式返回某些圖表的數據,我遇到了問題。
年關鍵價值
2011 Key1 5
2011 Key2 10
2012 Key1 12
2012 Key2 8
2013 Key1 3
這是我的查詢的一部分:
XAxisList = db.Datas.Where(w => w.CategoryID == measurementID).Select(x => x.Year).Distinct(),
Data = from d in db.Datas
where d.CategoryID == measurementID
group d by d.DataKey into g
select new
{
Key = g.Key,
Values = g.Select(s => s.Value)
}
這是我的linq查詢返回的內容:
"XAxisList": [
"2011",
"2012",
"2013"
],
"Data": [
{
"Key": "Key1",
"Values": [
"5",
"12"
"3"
]
},
{
"Key": "Key2",
"Values": [
"10",
"8"
]
}
]
如何在Key2值中添加“null”數組值,使其如下所示?
"XAxisList": [
"2011",
"2012",
"2013"
],
"Data": [
{
"Key": "Key1",
"Values": [
"5",
"12"
"3"
]
},
{
"Key": "Key2",
"Values": [
"10",
"8",
**null**
]
}
]
在此先感謝您的幫助!
根據您的數據集,這根本無法完成。 如果您的數據集包含以下記錄
2013 Key2 null
那就沒有任何問題了。
您可以理解,如果您考慮以下因素,為什么不能這樣做:
group d by d.DataKey into g
你在那里做什么?
您正在根據DataKey
屬性對記錄進行分組。 由於有兩個不同的鍵, key1
和key2
,因此會有兩個組。 key1
組有三個記錄, key2
組有兩個記錄。
此外,我認為你無法克服這個問題。 根據您的數據我可以理解,您有一些鍵的年度值,並且您希望使用它們來創建圖表。
現在缺少key2
和2013
。 所以你認為如果你可以在相應序列的末尾添加一個null
,一切都會好的。
{
"Key": "Key2",
"Values": [
"10",
"8",
"null"
]
}
您是否考慮過錯過2012年價值的情況? 它會完全一樣! 因此,在Values
數組的末尾添加null將沒有任何意義。
如果Year
值具體或在特定范圍內,我可以提出一個想法,但我不確定是否是這種情況。
我會在查詢后對報告或圖表進行修改,否則會變得非常混亂:
XAxisList = db.Datas.Where(w => w.CategoryID == measurementID).Select(x => x.Year).Distinct(),
Data = //your query
int largest = Data.Values.Max(v => v.Count);
foreach(var d in Data)
{
while(d.Values.Count < largest)
d.Values.Add(null);
}
或類似的。 您可能需要使用ToList
使您的Values
成為列表以獲取Add
方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.