下面的代碼部分是從更大的LINQ查詢,但它是一個我需要幫助:如何處理Linq中的空值與Regex.Replace到SQL的房產
KnowledgeTypeText = Regex.Replace((from categoryVersion in _Context.ArticleCategoryVersions
join category in _Context.Categories
on categoryVersion.CategoryID equals category.CategoryID
where category.ParentID.HasValue == true
&& category.ParentID.Value == rootKnowledgeTypeID
&& categoryVersion.Version == articleLatestVersions.Version
&& categoryVersion.ArticleID == articleLatestVersions.ArticleID
select category).First().Name, @"(\d+[\\.]?\s*)", ""),
短版:查詢的這一部分將爲一篇文章獲取一個類別,但不一定非要有一個值。如果它有一個值,我需要在文本的開頭去掉數字。
當類別爲空時,我收到了異常,因爲它顯然是試圖對屬性Name執行Replace操作。
如何添加代碼來處理空值?返回一個空字符串是安全的,但我不知道如何測試它並返回一個空字符串。
你真的需要內聯嗎?爲什麼不提取select,對其執行'FirstOrDefault',然後替換該值是否爲空? – icebat
'category'null?或者它是'Name'屬性'null'?或者序列中沒有項目? –
[在FirstOrDefault返回null的情況下從FirstOrDefault中選擇屬性的可能重複](https://stackoverflow.com/questions/19947464/selecting-a-property-from-firstordefault-in-case-firstordefault-returns-null) – Stefan