我有多个"猫类型"TacoCats,SpaceCats,FatCats.我需要整理我的猫.一个条件是,如果TacoCats未满65岁,则无法显示.因此,他们必须满足所有其他过滤条件以及年龄<65岁.如何更改此表达式,以便只有TacoCats受条件影响必须超过65岁?澄清我需要所有其他猫,无论年龄和条件只影响"TacoCats"
public void SortOutOnlyActiveOrPaidCats()
{
AllCats = AllCats.Where
(x =>
(x.CatStatus == "Active" || x.CatStatus == "Paid")
&& (x.CatCode == "1" || x.CatCode == "2" || x.CatCode == "3" || x.CatCode == "4")
&& (x.CatEnrollmentCode != "G"));
}
Run Code Online (Sandbox Code Playgroud)
这也是我尝试的原始变化.
(x = > ((x.CatStatus == "Active" || x.CatStatus == "Paid") && (x.CatCode == "1" || x.CatCode == "2" || x.CatCode == "3" || x.CatCode == "4") && (x.CatEnrollmentCode != "G") && (x.CatType != "TacoCat")) || ((x.CatStatus == "Active" || x.CatStatus == "Paid") && (x.CatCode == "1" || x.CatCode == "2" || x.CatCode == "3" || x.CatCode == "4") && (x.CatEnrollmentCode != "G") && (x.Age >= 65) && (x.PolicyType == "Taco Cats")) )
Run Code Online (Sandbox Code Playgroud)
首先,我们可以通过将状态和代码放入数组并使用Contains,然后为TacoCat年龄添加额外条件来简化它,如果你简化它基本上是"猫超过65或它不是一个塔科猫":
public void SortOutOnlyActiveOrPaidCats()
{
var validStatuses = new [] { "Active", "Paid" };
var validCodes = new [] { "1", "2", "3", "4" };
AllCats = AllCats.Where(x =>
validStatuses.Contains(x.CatStatus) &&
validCodes.Contains(x.CatCode) &&
x.CatEnrollmentCode != "G" &&
(x.CatType != "TacoCat" || x.Age >= 65)
);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
84 次 |
| 最近记录: |