English 中文(简体)
我是否应该利用准则来回答这一问题?
原标题:Should I use LINQ for this query?
  • 时间:2009-09-04 06:22:29
  •  标签:

我在阅读关于使用LINQ而不是每处使用一个排他器的公平界限,以及我所理解的采用LINQ处理法会是一个小小小小小小小步,但为了方便和表达,一般都值得。 然而,我很想知道,如果你在一旁利用问答结果,那是多么缓慢。

请允许我说,我有一套称为“地点”和一套称为“项目”的物体。 每个物品只能属于一个地点。 我想把同一地点下的项目相互联系起来。 如果我用正常的每个休息时间来做,那就好像:

For Each it as Item in Items
   If it.Location.equals(Me.Location)
      Me.LinkedItems.Add(it)
   End If
Next

然而,如果要使用准则准则,那么情况是:

For Each it as Item in Items.Where(Function(i) i.Location.equals(Me.Location))
   Me.LinkedItems.Add(it)
Next

现在我的问题是,第二个选择(LINQ)将一劳永逸地通过为完成质问而设计的整个项目,然后通过结果将这些问题列入清单,从而导致基本上有两处 lo,还是像第一个选择(每个选择)一样。 如果回答是前者,那么我就认为,在这种情况下使用准则是sil的。

最佳回答

它将做一例假,它会得到认真评价。

然而,你可能做得好于此。 <代码>的类型LinkItems? 如果它有适当的<代码>AddRange方法,你应当能够做到:

Me.LinkedItems.AddRange(Items.Where(Function(i) i.Location.equals(Me.Location)))

www.un.org/Depts/DGACM/index_spanish.htm 更多关于zy评价的信息。

基本上,<代码>Where 保持了一台自动取款机,只有在你提出要求时才能找到下一个对应项目。 在C#中,执行情况如下:

// Error handling omitted
public static IEnumerable<T> Where(this IEnumerable<T> source,
                                   Func<T, bool> predicate)
{
    foreach (T element in source)
    {
        if (predicate(element))
        {
            yield return element;
        }
    }
}

此处使用<代码>yield Return,使其得到认真评价。 如果你不熟悉C#探测器区块,你不妨看these 更详细的解释。

当然,<代码>could >已执行,而不是使用探测器组,但上述执行足以显示 la评价。

问题回答

它将一劳永逸地处理,因为你将讨论项目清单。 如果有的话。 在你的情况下,你想要的预先准备的条件清单,而且你应该真正与准则委员会联系。





相关问题
热门标签