我在這裏生成了一個列表,這個列表是由一個長查詢生成的,該查詢將數據用於抽取報表。將字典轉換爲列表
var result =
from..
where..
select new { sale.Id, Username = u.Name, Amount = p.amount};
output = result.Tolist();
但是,我想通過創建自己的值列表來擺脫那個長查詢。所以我創建了一個字典來存儲密鑰和價值。 我的目的是轉換字典背到具有類似上面的查詢相同的輸出列表,以便可以抽我的報告
public static object GetSalesDataBySaleOrderID(SaleOrder sale)
{
List<KeyValuePair<string, object>> list = new List<KeyValuePair<string, object>>();
for (int i = 0; i < sale.saleOrderItem.Count(); i++)
{
Dictionary<string, object> result = new Dictionary<string, object>()
{
{sale.Id.ToString(), sale.Id},
{"UserName", sale.User.GetSingleUserById(sale.saleOrderItem[i].UserId).Name},
{"Amount", sale.saleOrderItem[i].Amount},
};
list.Add(result);
}
return list;
}
我在list.Add(result);
錯誤得到了一個錯誤5參數 '1':不能轉換從 'System.Collections.Generic.Dictionary' 到 'System.Collections.Generic.KeyValuePair'
---編輯----------- -
我已更改爲List<Dictionary<string, object>> list = new List<Dictionary<string, object>>();
並解決了我的錯誤。
但是我仍然在字典格式
所獲得的價值,這應該是在列表中的預期輸出格式
我改變了我的答案。讓我知道它是否符合您的需求。 –
你的要求看起來很奇怪,我不確定我明白你的目標是什麼。你想把你的結果對象,並將它們轉換爲從屬性名稱映射到值的字典?有更有效的方法來獲得這種理想的行爲。實際上,使用[ExpandoObject](http://msdn.microsoft.com/en-us/library/system.dynamic.expandoobject.aspx)可以免費爲您提供這一切,如果這是您想要的。 –