【发布时间】:2016-12-05 03:13:52
【问题描述】:
我知道某处有LINQ 解决方案,我只是看不到它。我的情况是这样的:我有一个base class(现在我们称之为B)接受一个可变参数并使用它来初始化一个readonly字段,它恰好是一个@ 987654324@(我们称这个字段为 List)。
我有两个 derived classes(我们称它们为 D1 和 D2)用它们的 vararg 参数做完全相同的事情,将它传递给 base class 构造函数,没问题那里。
但是我有第三个derived class(让我们称之为D_1_and_2),派生自同一个base class,B,它接受作为其构造函数2个数组的参数,一个D1[]和另一个类型为D2[]。
我的问题是,不知何故,我必须将第一个参数(D1[] 参数)List 字段的所有元素彼此以及第二个参数的List 字段的所有元素连接起来,并将结果数组传递给@ 987654334@施工期间。波纹管是代码中问题的说明。
public class CollectionElement
{
}
public class BaseClass
{
public readonly IReadOnlyCollection<CollectionElement> TheCollection;
public BaseClass(params CollectionElement[] arg)
{
TheCollection = Arrays.AsReadOnly(arg);
}
}
public class DerivedClassA : BaseClass
{
public DerivedClass(params CollectionElement[] arg)
:base(arg){}
}
public class DerivedClassB : BaseClass
{
public DerivedClass(params CollectionElement[] arg)
:base(arg){}
}
public class DerivedClassA_Plus_B : BaseClass
{
public DerivedClass(DerivedClassA[] argA, DerivedClassB[] argB)
:base(/*[don't know]*/){}
}
【问题讨论】:
标签: c# arrays linq readonly readonly-collection