C# Linq使用distinct选择内部值 class-Foo { 公共列表bazs=新列表(); } Baz类 { public List ints=新列表(); } [测试]公共无效播放() { var foo=newfoo(); foo.bazs=新列表() { 新Baz() { ints=newlist(){1,2,3,4,5} }, 新Baz() { ints=newlist(){4,5,6,7,8} } }; IEnumerable结果=foo.baz .选择(x=>x.ints) .Distinct() .AsEnumerable(); //我期待一个IEnumerable 1,2,3,4,5,6,7,8 }

C# Linq使用distinct选择内部值 class-Foo { 公共列表bazs=新列表(); } Baz类 { public List ints=新列表(); } [测试]公共无效播放() { var foo=newfoo(); foo.bazs=新列表() { 新Baz() { ints=newlist(){1,2,3,4,5} }, 新Baz() { ints=newlist(){4,5,6,7,8} } }; IEnumerable结果=foo.baz .选择(x=>x.ints) .Distinct() .AsEnumerable(); //我期待一个IEnumerable 1,2,3,4,5,6,7,8 },c#,linq,C#,Linq,只需将更改为。选择为。选择many可展平子列表: class Foo { public List<Baz> bazs = new List<Baz> (); } class Baz { public List<int> ints = new List<int> (); } [Test] public void play () { v

只需将
更改为
。选择
。选择many
可展平子列表:

    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
    }

@马特:我想是越来越难理解了
.SelectMany (x => x.ints)