我想返回在请求状态下打折的活动组的列表。组列表每个都有一个状态列表,其中包括状态缩写和折扣标志。
过滤条件:
string[] states //list of state abbreviations
要过滤的列表:
public class WorksiteGroup
{
public long Id { get; set; }
public string Name { get; set; }
public string Type { get; set; }
public bool IsDiscontinued { get; set; }
public List<WorksiteGroupState> ActiveStates { get; set; } = new List<WorksiteGroupState>();
}
public class WorksiteGroupState
{
public string StateAbbrev { get; set; }
public bool IsDiscountApplied { get; set; }
}
同样,我想返回一个具有以上完整结构的WorksiteGroup列表,其中IsDiscontinued为false,并具有ActiveState,其中StateAbbrev匹配任何过滤条件(states []),而IsDiscountApplied对于该状态为true。
答案 0 :(得分:1)
您可以使用Linq进行尝试:
try:
last = 'i'
i = int('10')
last = 'j'
j = int('ten')
except ValueError:
print(f'Please enter an integer as {last}')
您可以玩游戏并添加更多内容以查看结果。
答案 1 :(得分:1)
让我们逐步进行操作,然后我们可以在必要时合并操作。
我想返回上面具有完整结构的WorksiteGroup列表 IsDiscontinued为假
source.Where(e => !e.IsDiscontinued);
并具有一个ActiveState,其中StateAbbrev与任何过滤器匹配 条件(状态[])
现在让我们采用上一个管道并将此条件链接到其中。
source.Where(e => !e.IsDiscontinued)
.Where(e => e.ActiveStates.Any(a => states.Contains(a.StateAbbrev)))
IsDiscountApplied在该状态下为真。
source.Where(e => !e.IsDiscontinued)
.Where(e => e.ActiveStates.Any(s => states.Contains(s.StateAbbrev) && s.IsDiscountApplied));
为了提高效率,我们将Contains
调用换成s.IsDiscountApplied
之后,例如
source.Where(e => !e.IsDiscontinued)
.Where(e => e.ActiveStates.Any(s => s.IsDiscountApplied && states.Contains(s.StateAbbrev)));
答案 2 :(得分:0)
sudo代码,但是会像下面这样工作,我确定您可以做到这一点,但是
<date variable>|date('d/m/Y')