c# - Linq 选择不同的内部值

标签 c# linq

    class Foo 
    {
        public List<Baz> bazs = new List<Baz> ();
    }

    class Baz
    {
        public List<int> ints = new List<int> ();
    }

    [Test] public void play ()
    {
        var foo = new Foo ();

        foo.bazs = new List<Baz> ()
        {
            new Baz ()
            {
                ints = new List<int> () {1, 2, 3, 4, 5}
            },
            new Baz ()
            {
                ints = new List<int> () {4, 5, 6, 7, 8}
            }
        };

        IEnumerable<int> result = foo.bazs
            .Select (x => x.ints)
            .Distinct ()
            .AsEnumerable ();

        // I'm expecting an IEnumerable<int> 1,2,3,4,5,6,7,8
    }

最佳答案

只需将 .Select 更改为 .SelectMany 即可展平子列表:

.SelectMany (x => x.ints)

关于c# - Linq 选择不同的内部值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5910074/

相关文章:

c# - 实体类必须定义在哪一层?

c# - 我想清除网格中的所有值而不是wpf中的(数据网格)子项

c# - 创建具有相同C#源构建的完整.net,PCL和dotnet核心程序集的单个源项目?

entity-framework - Entity Framework 5.0 First 或 Group By Issue - 从 2.2 升级到 5.0 之后

C# 围绕 x 代码进行空检查的模块化方法

c# - 当前上下文中不存在名称 'test1'

C# 将当前泛型类实例传递给其他类

C# LINQ To Sql 默认对象实例化过度优化?

c# - 如何使用 O(n) 中的 LINQ 根据特定顺序查找第一项?

c# - 使用 LINQ 填充具有单个列值的字符串