簡體   English   中英

我可以使用帶有布爾值的 LINQ if 語句...全部在 select new 中嗎? C#

[英]Can I use a LINQ if statement with a boolean... all inside a select new? C#

第一次與 Linq 合作,所以我不確定這是否是完成我想做的事情的最佳方式......感謝任何建議。

我想使用布爾 m.IsDog 將單詞 Dog 添加到 m.Behavior 字符串的末尾。 如果它確實是一只狗,那么添加“-Dog”,如果不是,那么我只想要 m.Behavior。

我的代碼中有這個,它一直在像我在 API 響應中想要的那樣工作。

select new ReportCard
{
Id = m.Id,
Name = $"{m.FirstName} {m.LastName}",
Age = m.Age,
Attitude = m.IsDog ? m.Behavior + "-Dog" : m.Behavior

我被困住了,因為我也想寫類似下面的東西:

如果 m.Behavior = "G" 那么 "Good" 否則 "Bad"

這樣我的 API 響應就可以是“Good-Dog”、“Bad-Dog”、“Bad”、“Good”,而無需更改數據庫值。

甚至有可能在同一行代碼中做類似的事情嗎?

也許改變這條線:

Attitude = m.IsDog ? m.Behavior + "-Dog" : m.Behavior

至:

Attitude = (m.Behavior.StartsWith("G") ? "Good" : "Bad") + (m.IsDog ? "-Dog" : "")

有助於?

請記住,這只會匹配與大寫“G”匹配的Behavior

暫無
暫無

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

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