【问题标题】:How to I combine multiple IEnumerable list together如何将多个 IEnumerable 列表组合在一起
【发布时间】:2009-08-03 15:01:22
【问题描述】:

我有一个具有 IEnumerable 属性的类 (ClassA)。然后我有另一个具有相同属性的类(ClassB)。他们共享一个接口(InterfaceA)。 ClassB 基本上是多个 ClassA 的容器类。如何实现 ClassB 的属性。

interface InterfaceA
{
    IEnumerable<int> MyInts
    {
        get;
    }
}

class ClassA : InterfaceA
{
    public IEnumerable<int> MyInts
    {
        get;
        private set;
    }
}

class ClassB : InterfaceA
{
    ClassA[] classAs = new ClassA[10];
    public IEnumerable<int> MyInts
    {
        get
        {
            //What goes here ?
            classAs.SelectMany(classA => classA.MyInts);
        }

    }
}

我尝试使用 LINQ 选择语句,但不起作用。

编辑: 看来我看的不够认真。答案就在这个问题中。 How do I Aggregate multiple IEnumerables of T

编辑 2: 包括对我有用的示例代码,以防其他人需要它。

【问题讨论】:

标签: c# linq ienumerable


【解决方案1】:

只是添加我的答案,所以这不会没有答案。

classAs.SelectMany(classA => classA.MyInts);

this question找到这个。

【讨论】:

    【解决方案2】:
            public IEnumerable<int> MyInts
            {
                get
                {
                    foreach (ClassA c in classAs)
                    {
                        foreach (int i in c.MyInts)
                        {
                            yield return i;
                        }
                    }
                }
    
            }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-12-07
      • 2017-05-07
      • 2010-10-15
      • 2018-02-18
      • 1970-01-01
      • 2011-11-23
      相关资源
      最近更新 更多