[英]what is the difference between for (or) foreach loop and linq query in case of speed
[英]Which is more efficient in this case? LINQ Query or FOREACH loop?
在我的项目中,我实现了一个服务类,该类具有一个命名为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);
}
这样做的目的是填充下拉菜单。
我的问题是“上述哪种方法在处理方面会更有效?” 因为我的项目有很多地方必须使用下拉菜单。
请使用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行代码,则应该这样做 。 代码重复是不好的,即使是为了简单的事情。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.