【问题标题】:LINQ: Creating an IEnumerable<T> from another IEnumerable<T>?LINQ:从另一个 IEnumerable<T> 创建一个 IEnumerable<T>?
【发布时间】:2011-07-08 14:52:56
【问题描述】:

我有以下:

public class Foo
{
    public int x { get; set; }
}

public class Bar
{
    public void DoWork(IEnumerable<Foo> foos)
    {
        var enumOfX = ?;

        //Other code that uses enumOfX
    }
}

如何创建一个包含所有 x 的 IEnumerable&lt;int&gt;

【问题讨论】:

    标签: c# linq ienumerable


    【解决方案1】:

    你使用Select:

    var enumOfX = foos.Select(foo => foo.x);
    

    大量的 LINQ to Objects 正在从另一个 IEnumerable&lt;T&gt; 创建一个...其余的只是聚合 :)

    【讨论】:

    • 如果你更喜欢其他语法:var enumOfX = from foo in foos select foo.x;
    • @Dismissile:是的 - 我没有在这里包括,因为对于这样的查询,使用查询表达式形式 IMO 是没有意义的。开发人员真的应该在这两个方面都感到舒服:)
    • 我同意...但是有些人如果不习惯 lambda 语法会感到困惑。婴儿步骤!
    • @Dismissile:不,从 lambda 语法开始,然后然后解释查询表达式的工作原理。那样黑魔法就少了,IMO :)
    猜你喜欢
    • 1970-01-01
    • 2013-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多