LINQ - 如何更改/转换FirstOrDefault()tolist()或SelectMany()

问题描述 投票:-1回答:1

我有以下LINQ查询,其中每一行都做了一些事情,但那行序列号我也标记为**它将返回First或Default或只是一行,但我的数据库中的那一列(序列号)有很多行不仅仅是一个,这意味着如果我们在数据库中有10个项目用于ex 10联想键盘,这意味着我们每个键盘有10个不同的序列号,但是我写的查询将只显示第一个序列号,那么我怎么能改变它以显示序列号的所有/行!谁能指引我朝正确的方向发展?谢谢

** PS当我将FirstOrDefault更改为tolist()时,我将在此行下出现错误SerialNoDeliverdLineOpenOrdre = t.SerialNo.Serial_No_,|错误是关于系统集合通用列表不包含Serial_No_的定义

行动和查询:

var col2 = data_2.Shipment.Where(t => t.Order_No_ == OrdreNo).Select(t => new
                {
                    **SerialNo = data_2.Serial_Numbers.Where(ledger => ledger.Document_No_ == t.Document_No_)
                            .Where(ledger => ledger.Document_Line_No_ == t.Line_No_)
                            .toList(),

                });

var bla3 = col2.Select(t => new Ordre_Open_Details_VM.OrdreDetailDeliveryLineOpen
                {
                 **SerialNoDeliverdLineOpenOrdre = t.SerialNo.Select(x=>x.Serial_No_).ToList(), ** //Serial No

                })
            .ToList();

类:

 public OrdreDetailDeliveryLineOpen(List<string> SerialNoDeliverdLineOpenOrdre)
                        {
     ** this.SerialNoDeliverdLineOpenOrdre = SerialNoDeliverdLineOpenOrdre;**

      }
         }

     ** public List <string> SerialNoDeliverdLineOpenOrdre { get; set; } **  
    }
c# linq serialization
1个回答
0
投票

所以经过评论中的长时间讨论后,这似乎有效:

1)将SerialNoDeliverdLineOpenOrdre定义为List<string>而不是string

public List <string> SerialNoDeliverdLineOpenOrdre { get; set; }

2)为SerialNo分配一个列表:

SerialNo = data_2.Item_Ledger_Entry.Where(ledger => ledger.Document_No_ == t.Document_No_)
                .Where(ledger => ledger.Document_Line_No_ == t.Line_No_).ToList();

3)为新的SerialNoDeliverdLineOpenOrdre分配一个列表

SerialNoDeliverdLineOpenOrdre = t.SerialNo.Select(x=>x.Serial_No_).ToList(),

4)然后,要在前端呈现列表,请遍历列表项:

foreach (var FieldShipment in Model.OrdreDetailDeliveryLineOpens)
{
    <ul>
    foreach(var x in FieldShipment.SerialNoDeliverdLineOpenOrdre)
    {
       <li>@x</li>
    }
    </‌‌​​ul>
}
© www.soinside.com 2019 - 2024. All rights reserved.