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

各位,请问怎么写此类的函数?

2013-09-09 
各位,请教如何写此类的函数??代码:var datas (from D in dbjy.dt_2_jienswhere (D.单位名称 办公室

各位,请教如何写此类的函数??
代码:

var datas = (from D in dbjy.dt_2_jiens
                         where (D.单位名称 == "办公室")
                         group D by D.类别 into dGroup
                         select new {tts=dGroup.Key,conts=dGroup.Count()}).OrderBy(D=>D.tts ) ;

//   开始
List<SelectListItem> xx = new List<SelectListItem>();

 if ((datas != null) && (datas.Count() > 0))
            {
                foreach (var data in datas)
                {
                    xx.Add(new SelectListItem { Text = tts , Value = conts.ToString() });
                }
 }

// 结束

ViewData["Chart"] = xx ;


return View();

如何将 “开始 ”和“结束”部分之间的代码写成通用的函数,即最后成为如下的效果:
var datas = (from D in dbjy.dt_2_jiens
                         where (D.单位名称 == "办公室")
                         group D by D.类别 into dGroup
                         select new {tts=dGroup.Key,conts=dGroup.Count()}).OrderBy(D=>D.tts ) ;
ViewData["Chart"] = getdata(datas) ;
return View();


就是 如何写此 getdata() 为通用的?谢谢。 EF 通用代码


[解决办法]
嗯,Linq to EF不支持ToString()

只能这么写了:
List<SelectListItem>?getData<T>(IEnumerable<T>?data,?Func<T,?SelectListItem>?selector)?where?T?: class
{
????return?data.Select(selector).ToList();
}

ViewData["Chart"] = getData(datas.AsEnumerable(), x => new SelectListItem { Text = tts, Value = conts.ToString() });

热点排行