簡體   English   中英

在這種情況下哪個更有效? LINQ查詢還是FOREACH循環?

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM