在LINQ中组合数组 - 内联

6

我正在将列表中的项初始化为数组,如下所示:

MyArray[] Arrayitems = SomeOtherList
.Select(x => new MyArray[]
{
   ArrayPar1 = x.ListPar1,
}).ToArray()

我有一个次要列表,我想在初始化程序中将它内联添加到同一个数组中,类似于这样():

    MyArray[] Arrayitems = SomeOtherList
    .Select(x => new MyArray[]
    {
       ArrayPar1 = x.ListPar1,
    }).ToArray()
   .Join(
    MyArray[] Arrayitems = SomeOtherListNo2
    .Select(x => new MyArray[]
    {
       ArrayPar1 = x.ListPar1,
    }).ToArray()
   );

这是否可能,还是我需要在初始选择语句之前将所有内容合并?

你是指 new MyArray() 吗?根据你提供的初始化程序和结果类型,new MyArray[] 没有意义。 - Sefe
谢谢Sefe,你说得对,但这只是一个伪代码示例,实际代码中会有在其他地方初始化的“Arrayitems”。你给出的另一个答案正是我需要的,谢谢。 - Dan Hall
1个回答

6
您可以使用 Concat 函数:
MyArray[] Arrayitems = SomeOtherList.Concat(SomeOtherListNo2)
.Select(x => new MyArray()
{
   ArrayPar1 = x.ListPar1,
}).ToArray();

如果一个项目可以同时包含在两个列表中,而您只想在结果中保留一次,那么您可以使用 Union
MyArray[] Arrayitems = SomeOtherList.Union(SomeOtherListNo2)
.Select(x => new MyArray()
{
   ArrayPar1 = x.ListPar1,
}).ToArray();

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接