我試圖在這個 JSON 中獲取一個頁面,我得到了我想要的值,但它變成了 null,因為回圈不會停止并轉到沒有正確值的其他部分。在此處獲取頁面并在找到值時停止回圈的最佳方法是什么?
代碼
var pageId = 912;
foreach(var section in SectionsObj)
{
page = section.Pages.Where(page => page.PageId == pageId).FirstOrDefault();
};
json
{
"sections":[
{
"sectionId":1,
"sectionName":"xxx",
"pages":[
{
"pageId":910,
"pageName":"Profile Page 1"
},
{
"pageId":911,
"pageName":"Profile Page 2"
}
]
},
{
"sectionId":2,
"sectionName":"xx",
"pages":[
{
"pageId":912,
"pageName":"Profile Page 1"
},
{
"pageId":913,
"pageName":"Profile Page 2"
}
]
},
{
"sectionId":3,
"sectionName":"xxxx",
"pages":[
{
"pageId":914,
"pageName":"Profile Page 1"
},
{
"pageId":915,
"pageName":"Profile Page 2"
}
]
}
]
}
uj5u.com熱心網友回復:
將邏輯放入函式中,并在找到頁面時回傳:
var pageId = 912;
var page = FindPage(pageId, SectionsObj);
private Page FindPage(int id, IEnumerable<Section> sections)
{
foreach(var section in sections)
{
page = section.Pages.FirstOrDefault(page => page.PageId == id);
if (page != null)
{
return page;
}
}
return null;
}
uj5u.com熱心網友回復:
根據我的評論,您可以將代碼縮短為:
var page = SectionsObj.SelectMany(s => s.Pages).FirstOrDefault(p => p.PageId == pageId);
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/515634.html
標籤:C#林克
上一篇:C#獲取特定元素下的所有元素值
下一篇:將資料表轉換為串列的通用方法