我正在嘗試構建具有以下屬性的物件
public class data
{
public string Ref{ get; set; }
public string Number { get; set; }
public string Type{ get; set; }
public string? Origin{ get; set; }
};
事情是:ref / Number / Type,我一定會在我的 XML 檔案中找到這些資料,但在某些情況下 Origin 可能為空。
下面的代碼是通過 XML 檔案中的一些 elt 回圈的,有時我們可以在子元素的集合中找到源,有時因為沒有子元素匹配條件而無法找到源。
在構建物件的同時如何處理這個空例外?目標是如果找不到 Origin = "" 。
containerData.Add(new dataContainer()
{
Ref= elt.Descendants(ns "Ref")
.FirstOrDefault()
.Value,
Number = elt.Descendants(ns "Number")
.FirstOrDefault()
.Value,
Type = elt.Descendants(ns "Type")
.FirstOrDefault()
.Value,
Origin = subElement.Where(x => x.Element(ns "Name").Value == "Origin")
.Select(x => x.Element(ns "Value"))
.SingleOrDefault()
.Value,
});
試圖獲取 Origin 可為空的型別,但物件在構建時仍然向我拋出例外。
uj5u.com熱心網友回復:
.SingleOrDefault()可能會回傳,因此您可以使用(=> Only access if not null)null來防范這種情況。.SingleOrDefault()?.ValueValue
這會給你一個值 or null。如果你想在這種情況下有一個空字串(如果null),你可以使用.SingleOrDefault()?.Value ?? "".
以供參考:
- 空條件運算子
- 空合并運算子
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/450968.html
