首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

linq好手求解

2013-08-16 
linq高手求解怎么把var query from t in biz.biz_order_para.Where(x listOrder_nos.Contains(x.orde

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太弱
[解决办法]

引用:
var dict = query.ToDictionary(c => c.Key, c => c.v);
字典的值类型取决于v,上面那样是int,string太弱


引用:
v是int,g.key是string 定义成dictionary定义成<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楼写错,调用方法是接口,  在这敲来敲去,复制来复制去的都弄混了

热点排行