代码之家  ›  专栏  ›  技术社区  ›  ChaosPandion

为什么LINQ“apply to all”方法名为Select?

  •  27
  • ChaosPandion  · 技术社区  · 16 年前

    Select 我认为“选择所有地方”。 当我阅读使用 Map 我认为“这个适用于那个”或“适用于所有人”。 我不可能是唯一一个感觉到这个名字的人 挑选 这令人困惑。

    Map

    3 回复  |  直到 16 年前
        1
  •  44
  •   Mehrdad Afshari    16 年前

    它与函数式语言的映射完全相同。它被命名的原因 Select 它被设计成LINQ的一部分,LINQ使用类似SQL的关键字。

    from item in collection
    where item.Value == someValue
    select item.Name
    

    collection.Where(item => item.Value == someValue)
              .Select(item => item.Name)
    

    挑选 Map ; 比如:

    collection.Filter(item => item.Value == someValue)
              .Map(item => item.Name)
    

    事实上,许多人使用LINQ时根本没有听说过函数式编程。对他们来说,LINQ是一种检索数据对象并轻松查询它们的方法(就像SQL查询一样)。对他们来说,, Where 地图 Filter

        2
  •  3
  •   nawfal Donny V.    12 年前

    Select 对我来说似乎也有点困惑,但这只是时间问题。Mehrdad告诉你一个很好的理由 挑选 . 除此之外,我觉得 挑选 Linq 好多了。不是那样 Map 这意味着它改变了原来的结构,但是 挑选 说得更清楚。它告诉你没有接触原始列表,而只是从中选择以形成另一个列表。

    它与其他命名一样 Where collection.Filter 这会让你知道你是在筛选那个特定的收藏,或者至少是第一次。最后,这都是一个熟悉的问题。虽然一开始我对这件事很恼火 林克 纳明斯,现在我觉得微软团队已经得到了最正确的答案。

        3
  •  0
  •   Randy Minder    16 年前

    Select排在最后的主要原因之一是使Intellisense工作。通过将序列的源放在第一位(from语句),Intellisense可以正常工作。