c# - 使用 linq 表达式从对象集合中获取单个数组或字符串列表,而无需使用 foreach 和 addrange

标签 c# linq-to-objects

public class Buddy
    {
        public string[] Sayings;
    }


Buddy one = new Buddy();
        one.Sayings = new[] {"cool", "wicked", "awesome"};

        Buddy two = new Buddy();
        two.Sayings = new[] {"bad", "lame", "boring"};

        Buddy[] buddies = new[] {one, two};

        IEnumerable<string[]> something =
            from b in buddies
            select b.Sayings;

所以基本上我想得到一个数组或列表,其中包含{"cool, wicked, awesome, "bad", "lame", "boring"} 每个使用 linq 的好友的谚语。

我尝试了所有我能想到的方法,但我开始怀疑它能否仅用一个 linq 表达式来完成。我可以遍历好友中的每个好友,然后将 Sayings 添加到列表中,但我想既然我正在学习 linq,我会尝试这种方式。有可能吗?如果有的话怎么办?如果我想在 Buddy 中获取一些其他对象,这也适用,在这种情况下,它只是字符串列表。

最佳答案

这个怎么样:

var result2 = buddies.SelectMany(b => b.Sayings);

关于c# - 使用 linq 表达式从对象集合中获取单个数组或字符串列表,而无需使用 foreach 和 addrange,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1009349/

相关文章:

c# - 如何从下拉列表中的数据源表访问其他列?

c# - 用于删除字符串中符合条件的所有字符的简短 LINQ 语句?

c# - 最近用户查询

c# - 按其中的对象列表对对象列表进行排序

linq-to-entities - 为什么EF throw "NotSupportedException: The method ' First'只能作为最终查询操作”

c# - 为什么扩展方法需要 "static"和 "this",它们的内存是如何分配的?

c# - Gridview 排序不起作用

c# - 过滤属性名称为字符串的模板列表

c# - 在 Realm 中使用特定于项目的 ViewModel 的最佳方式是什么?

c# - 我无法思考如何在 C# 中使用正则表达式或如何解决我的问题