[英]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.