我可以在select new中使用LINQ if语句和boolean... all吗?C#

8yparm6h  于 2022-12-06  发布在  C#
关注(0)|答案(1)|浏览(175)

第一次和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.行为=“G”,则为“好”,否则为“坏”*

这样我的API响应可以是“好狗”、“坏狗”、“坏”、“好”,而不改变数据库值。
有可能在同一行代码中做类似的事情吗?

agxfikkp

agxfikkp1#

可能将此行从:

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

至:

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

会有帮助吗
请记住,这将仅匹配与大写字母“G”匹配的Behavior

相关问题