ここでは、データをレポートにポンピングするために長いクエリから生成されたリストがあります。辞書をリストに変換する
var result =
from..
where..
select new { sale.Id, Username = u.Name, Amount = p.amount};
output = result.Tolist();
しかし、私は代わりに値の自分のリストを作成することによって長いクエリを取り除きたいと思います。だから私はキーと値を格納する辞書を作成します。私がlist.Add(result);
エラーでエラーが発生しました
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; }
私のレポートに圧送することができるように 私の目的は、上記のクエリのように同じ出力を持つリストに戻って辞書を変換することです5引数が '1': 'System.Collections.Generic.Dictionary' から 'System.Collections.Generic.KeyValuePair'
--- EDITに変換することはできません----------- -
List<Dictionary<string, object>> list = new List<Dictionary<string, object>>();
に変更され、エラーが解決しました。変更答え、今OPの元のエラーが解決されていること:
私はまだ辞書形式で
を値を取得していますしかし、これはリストに
私は自分の答えを変更しました。それがあなたのニーズを満たしているかどうか教えてください。 –
あなたの要求は私には奇妙に見えますが、あなたの目標が何であるか分かりません。結果オブジェクトを取得し、プロパティ名から値にマップする辞書に変換しようとしていますか?この望ましい振る舞いを得るためにはるかに効率的な方法があります。実際には、[ExpandoObject](http://msdn.microsoft.com/en-us/library/system.dynamic.expandoobject.aspx)を使用することで、これがあなたの望むものならば無料で提供することができます。 –