簡體   English   中英

在LINQ to Entity中獲取子級值

[英]Get Child value in LINQ to Entity

我有LINQ查詢,它以以下格式返回結果

-- Parent1
 ----Childs
 ------key - aa
 ------value - new
 ----Childs
 ------key - bb
 ------value - old
 -- Parent2
 ----Childs
 ------key - cc
 ------value - test
 ----Childs
 ------key - dd
 ------value - tesst

我想使用LINQ 一行來獲取孩子的價值。 目前我可以得到值,但是用兩行代碼我不喜歡

 var firstPoint = SeriesList.Select(i => i.Childs.Where(j => j.key == "aa"))
                            .FirstOrDefault();
 decimal index = firstPoint.Select(d => d.Value)
                           .FirstOrDefault();
decimal index = SeriesList.Select(i => i.Childs.Where(j => j.key == "aa"))
    .FirstOrDefault()
    .FirstOrDefault().Value;
var firstPoint = SeriesList.Select(i => i.Childs.Where(j => j.key == "aa")).FirstOrDefault().Value;
decimal index = SeriesList.SelectMany(p => p.Childs)
                          .FirstOrDefault(c => c.key == "aa").Value;

但是請記住,具有提供的鍵的孩子應該存在於列表中,否則您將獲得異常。 我認為最好先找到孩子,然后再找到孩子,獲取它的價值:

Childs child = SeriesList.SelectMany(p => p.Childs)
                          .FirstOrDefault(c => c.key == "aa");
if (child != null)
    index = child.Value;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM