在我的项目中,我实现了一个服务类,其中有一个命名为GetList()的函数,如下所示:
IList<SUB_HEAD> GetList(string u)
{
var collection = (from s in context.DB.SUB_HEAD where (s.head_code.Equals(u))
select s);
return collection.ToList();
}
也可以实现为
Arraylist unitlist= new Arraylist();
ObjectSet<SUB_HEAD> List = subheadService.GetAll();
foreach(SUB_HEAD unit in List)
{
unitlist.Add(unit.sub_head_code);
}
这样做的目的是填充下拉菜单。
我的问题是“上述哪种方法在处理方面会更有效率?”因为我的项目有很多地方我必须使用下拉菜单。
答案 0 :(得分:5)
请使用LINQ版本。如果您进行概要分析并确定它太慢(顺便说一句,它不会),您可以稍后执行优化。此外,您可以使用函数式LINQ创建一个我认为更好的单个表达式。
IList<SUB_HEAD> GetList(string u)
{
return context.DB.SUB_HEAD.Where(s => s.head_code == u).ToList();
}
ToList()
方法与您手动执行的操作完全相同。 .NET框架中的实现看起来像这样:
public static class Enumerable
{
public static List<T> ToList<T>(this IEnumerable<T> source)
{
var list = new List<T>();
foreach (var item in source)
{
list.Add(item);
}
return list;
}
}
如果您可以使用字符“ToList()
”来表达这4行代码,那么就应该这样做。代码重复很糟糕,即使这样做很简单。