gpt4 book ai didi

c# - 带有两个 where 子句的 Linq 语句

转载 作者:行者123 更新时间:2023-11-30 12:47:41 25 4
gpt4 key购买 nike

我正在尝试解决以下问题。

    public class Competition
{
public int Id { get; set; }
public string Name { get; set; }
public IList<ResultInfo> ResultInfos { get; set; }
public IList<Event> ChildEvents { get; set; }
}


public class ResultInfo
{
public int Id { get; set;}
public string ResultInfoName { get; set;}
public int Season { get; set; }
}

public class Event
{
public int Id { get; set; }
public string EventName { get; set; }
public IList<ResultInfo> ResultInfos { get; set; }
}

我正在尝试如下查询,以尝试从比赛和事件中获取“2013”​​赛季的结果信息。有知道的请指教。

if (year.HasValue)
{
model = model.Where(x => x. ??
}

最佳答案

你可以这样做:

var competitions = new Competition(); // Populated competition class

var results = (from c in competitions
from e in c.ChildEvents
from ri in e.ResultInfos
where ri.Season == 2013).ToList();

不清楚为什么你需要一个额外的 where 但你可以扩展它并有另一个子句,例如

where ri.Season == 2013 && EventName == "Event"

正如@von.v 所指出的,您可以通过 Competition 类直接访问 ResultInfos,因此您可以通过以下方式简化它:

   var results = (from c in competitions
from ri in c.ResultInfos
where ri.Season == 2013).ToList();

关于c# - 带有两个 where 子句的 Linq 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16166851/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com