linq高手求解
怎么把 var query = from t in biz.biz_order_para.Where(x => listOrder_nos.Contains(x.order_ID.ToString()))
where para_keys.Contains(t.para_key)
group t by t.para_key into g
select new { v = g.Sum(s => Convert.ToInt32(s.para_value)), g.Key };
放到 Dictionary<string, string> dictionary = new Dictionary<string, string>();这个字典里面
LINQ
[解决办法]
dictionary = query.ToDictionary(g => g.Key, g => g.v);
[解决办法]
var query = from t in biz.biz_order_para.Where(x => listOrder_nos.Contains(x.order_ID.ToString()))
where para_keys.Contains(t.para_key)
group t by t.para_key into g
select new { v = g.Sum(s => Convert.ToInt32(s.para_value)), g.Key };
Dictionary<string, string> dictionary = new Dictionary<string, string>();
dictionary =query.ToDictionary(c => c.Key, c => c.v);
[解决办法]
试试这样:
var query = from t in biz.biz_order_para.Where(x => listOrder_nos.Contains(x.order_ID.ToString()))
where para_keys.Contains(t.para_key)
group t by t.para_key into g
select new { v = g.Sum(s => Convert.ToInt32(s.para_value)), g.Key };
Dictionary<string, string> dictionary = new Dictionary<string, string>();
foreach(var one in query)
{
dictionary[one.g.key.ToString()]=one.v.ToString();
}
不知道你的数据类型是什么样的,如果key是int类型的,那把dictionary定义成<int,string>比较好
[解决办法]
var dict = query.ToDictionary(c => c.Key, c => c.v);
字典的值类型取决于v,上面那样是int,string太弱
[解决办法]
dictionary<类型,类型> 这里类型怎么定义都可以,只要赋值的时候对应类型一样就行。
按照我4楼的代码不可能不行, 如果不行那一定是你代码的其他地方的问题。
[解决办法]
。。。。你要学会思考啊,其实看到这么多的回答早就应该能融汇贯通了,
问问题不应该是得到机械化的结果,而是要得到解决问题的思想
我还是贴一个亲自测试的能出结果的给你吧:
public Dictionary<int,string> TestDictionary()
{
//DX是我测试血的上下文对象,System_LoginLog是我测试用的数据表
var query = from t in DX.System_LoginLog
select new { v = t.ID, t.LoginTime };
Dictionary<int, string> dictionary = new Dictionary<int, string>();
foreach (var one in query)
{
dictionary[one.v] = one.LoginTime.ToString();
}
return dictionary;
}
调用:
(因为我的测试数据没有ID=1的)
好了,花了点时间专门为你写了个测试,
这里我是测试所以获取指定key的值response.write
至于你要怎么用,随你了,整个Dictionary对象都返回了,想怎么用就怎么用
[解决办法]
上面10楼写错,调用方法是接口, 在这敲来敲去,复制来复制去的都弄混了