【问题标题】:Combing Array Inline - LINQ组合数组内联 - LINQ
【发布时间】:2017-02-14 09:30:27
【问题描述】:

我正在从列表中的项目初始化和数组,如下所示:

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,你是对的,但这只是一个伪示例,实际代码将只有在其他地方初始化的 'Arrayitems'。您的其他答案正是我所需要的,谢谢。

标签: c# arrays linq


【解决方案1】:

你可以使用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();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-31
    • 1970-01-01
    相关资源
    最近更新 更多