【问题标题】:Convert a collection of objects with a string property to an enumeration of those strings using LINQ使用 LINQ 将具有字符串属性的对象集合转换为这些字符串的枚举
【发布时间】:2011-05-25 14:05:22
【问题描述】:

我有一个 IEnumerable 对象,其中 Foo 有一个名为“Name”的字符串属性。是否有一个简单的 LINQ 语句可以让我从这些名称的枚举中返回一个字符串集合?

例如

IEnumerable<Foo> (which contains...)
    Foo.Name = First
    Foo.Name = Second
    Foo.Name = Third

我想返回一个包含“First”、“Second”和“Third”的 IEnumerable

你好么?

【问题讨论】:

    标签: linq ienumerable observablecollection predicate


    【解决方案1】:

    如果您的初始 IEnumerable 被称为列表,这将执行此操作:

    list.Select(f => f.Name);
    

    【讨论】:

    • 宾果游戏!正是我想要的。只是出于好奇,如果它是 list.select(f => f.Name == "Joe") 将返回一个名称等于 "Joe" 的 Foo 对象集合(假设有一个或多个) 还是会返回一个布尔值集合?毕竟, f.Name 返回一个字符串,而 f.Name == "Joe" 返回一个布尔值,所以我不确定。这就是让我感到震惊的原因......我不知道 Select 返回什么。我一直认为它返回了一个 'f's 的集合,但你证明并非如此。
    • list.Select(f => f.Name == "Joe") 将返回一个布尔值的 IEnumerable,如果你只想要那些名字为“Joe”的 Foos 你想要 list.Where(f => f.Name == "Joe") 如果你只想要等于 "Joe" 的字符串,你想要 list.Where(f => f.Name == "Joe").Select(f => f.Name )
    • 这就是我投票给你的原因!惊人的!现在这更有意义并且完全清楚。它几乎只是链式函数。太棒了!谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-04-14
    • 2010-10-03
    • 1970-01-01
    • 1970-01-01
    • 2012-08-25
    • 1970-01-01
    相关资源
    最近更新 更多