我有一個包含類似這樣的項目的列表:重組列表項成組
{
Answer: "test answer",
FaqTopicName :"General",
Question: "test question",
SortOrder: 0
},
{
Answer: "...",
FaqTopicName :"General",
Question: "...",
SortOrder: 1
},
... (repeated)
我希望改組名單,以便它現在包含一個對象的內部分組每個列表項目。結果對象將如下所示,並將包含屬性名稱爲「items」= []下具有相同FaqTopicName的所有項目。
數據我希望進行最後的格式爲:
{
topicName: "General",
items: {
Answer: "test answer",
Question: "test question",
SortOrder: 0
},
{
Answer: "...",
Question: "...",
SortOrder: 1
}
}
以下是我已經試過了,但它不出來正確的,也不會通過JavaScriptSerializer()運行:
List<FaqQuestionAnswer> allFaqItemsInSelectedSytem = faqController.GetAllFaqItemsForSystem(out errors);
var groupedData = (from qaItem in allFaqItemsInSelectedSytem
group qaItem by qaItem.FaqTopicName
into questionsAnswersGroupedDataset
select questionsAnswersGroupedDataset).Distinct().ToDictionary(items => new { title = items.Key.ToString(), items = items.ToList() });
在調試器在此所得到的:
[0] = {[{標題=電子書,項= System.Collections.Generic.List 1[JPay.Base.FaqQuestionAnswer] }, System.Linq.Lookup
2 +分組[System.String,JPay.Base.FaqQuesti onAnswer]]}
但是當我通過JSON轉換器運行它拋出鍵入錯誤:
類型「System.Collections.Generic.Dictionary 2[[<>f__AnonymousType0
-2 - [[System.String,mscorlib程序,版本= 4.0.0.0 ,Culture = neutral,PublicKeyToken = XXXXXXXXXXX],[System.Collections.Generic.List 1[[Base.FaqQuestionAnswer, Version=1.0.6180.30742, Culture=neutral, PublicKeyToken=null]], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=XXXXXXXXXXXX]], tttwebsite, Version=1.0.6181.25360, Culture=neutral, PublicKeyToken=null],[System.Linq.IGrouping
2 [[System.String,mscorlib,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = XXXXXXXXXXXXX],[ttt.Base.FaqQuestionAnswer, tttBase,Version = 1.0.6180.30742,Culture = neutral,PublicKeyToken = null]],System.Core,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = XXXXXXXXXXXXXXXXX]]不支持字典序列化/反序列化,必須是字符串或對象。
感謝您的幫助。
當你說「它沒有出來正確」時,你得到的數據格式是什麼? –