[英]C# LINQ - Return a typed filtered list based on a child property that is inside another list
[英]C# return value inside linq list based on if statement
是)我有的
我有一個列表,只有在滿足某些條件時才會執行
var list = data.Where(!t.Area.HasValue || t => t.Area == response.Area).Select(t => new Status()
{
PK = t.PK,
Area = t.Area,
Description = t.Description
//other stuff
}).ToList();
我想要的是
這個列表的工作方式很好,但現在我想略微修改它。 對於其中一個變量,我想運行一個if-else語句,該變量將是if-else語句執行的返回結果
var list = data.Where(!t.Area.HasValue || t => t.Area == response.Area).Select(t => new Status()
{
PK = t.PK,
Area = t.Area,
Description, //<---------------returns the value of executed if-else statement
//if (t.Area.HasValue) Description = a;
//else Description = b;
OtherStuff = t.OtherStuff
}).ToList();
我的問題是: 我在哪里放置if-else條件才能正確執行它?
我嘗試了什么
我嘗試將if-else語句放在兩個逗號之間的實際變量的位置。
我嘗試使用temp變量,其結果將被返回,但我不希望在我的列表中有這個臨時變量。
在我意識到它是一組實際執行該列表的條件之前,我嘗試在Where()中有額外的條件。
搜索SO和互聯網並沒有讓我想要嘗試的結果(希望,我不只是使用錯誤的搜索條件)。
您可以按照以下方式使用三元運算符:
Area = t.Area,
Description = t.Area.HasValue ? a : b,
var list = data.Where(!t.Area.HasValue || t => t.Area == response.Area).Select(t => new Status()
{
PK = t.PK,
Area = t.Area,
Description = t.Area.HasValue ? a : b,
OtherStuff = t.OtherStuff
}).ToList();
var list = data.Where(!t.Area.HasValue || t => t.Area == response.Area).Select(t => new Status()
{
PK = t.PK,
Area = t.Area,
Description = t.Area.HasValue ? a : b
//other stuff
}).ToList();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.