gpt4 book ai didi

c# - 连接的 Lambda 表达式

转载 作者:IT王子 更新时间:2023-10-29 04:37:47 27 4
gpt4 key购买 nike

public class CourseDetail
{
public CourseDetail();
public string CourseId { get; set; }
public string CourseDescription { get; set; }
public long CourseSer { get; set; }
}

public class RefUIDByCourse
{
public long CourseSer { get; set; }
public double DeliveredDose{ get; set; }
public double PlannedDose{ get; set; }
public string RefUID { get; set; }
}
public class RefData
{
public double DailyDoseLimit { get; set; }
public string RefName { get; set; }
public string RefUID { get; set; }
public double SessionDoseLimit { get; set; }
}

public class CourseSummary
{
public long CourseSer { get; set; }
public double DeliveredDose{ get; set; }
public double PlannedDose{ get; set; }
Public List<RefData> lstRefData {get;set;}
}

对于一个 courseSer,RefUIDByCourse 中可以有多个 RefUID对于每个 RefUID,RefData 中都会有一条记录

我有 CourseDetail、RefUIDByCourse 和 RefData 的列表现在,对于 coursedetail 中存在的 coursers,我必须创建 CourseSummary 列表。

我能做的一件事是为 coursedetail 循环并使用 linq 查询获取相应的 refdata 并创建一个 coursesummary 对象并将其添加到列表中。

但是有什么方法可以通过一个 linq 查询而不是循环执行吗

最佳答案

Join 的 lambda 有点复杂 - 这是一个简单的例子:

List<Person> People = new List<Person>();
List<PersonType> PeopleTypes = new List<PersonType>();

var joined = People.Join(PeopleTypes,
PeopleKey => PeopleKey.PersonType,
PeopleTypesKey => PeopleTypesKey.TypeID,
(Person, PersoneType) => new
{
Name = Person.Name,
TypeID = PersoneType.TypeID
});

我通常发现查询语法比连接的 lambda 更具可读性

        var joined2 = from p in People
join pType in PeopleTypes
on p.PersonType equals pType.TypeID
where p.Name.StartsWith("whatever")
select new { Name = p.Name, TypeID = pType.TypeID };

关于c# - 连接的 Lambda 表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5038288/

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