C# 将列表添加到列表
我不知道解决这个问题的最佳方法是什么 我有一个对象研究,在每个研究中可以分配多个储罐。然后,分配给该研究的每个储罐上都有日志。我想我可以得到它,通过得到分配给该研究的坦克列表,然后从列表坦克的每个元素循环,得到每个坦克的日志列表 如果我返回列表以获取分配给该研究的每个储罐的日志,我如何从分配给该研究的列表中返回列表C# 将列表添加到列表,c#,asp.net,C#,Asp.net,我不知道解决这个问题的最佳方法是什么 我有一个对象研究,在每个研究中可以分配多个储罐。然后,分配给该研究的每个储罐上都有日志。我想我可以得到它,通过得到分配给该研究的坦克列表,然后从列表坦克的每个元素循环,得到每个坦克的日志列表 如果我返回列表以获取分配给该研究的每个储罐的日志,我如何从分配给该研究的列表中返回列表 //Study Class public class Study{ public Guid StudyId; public Stri
//Study Class
public class Study{
public Guid StudyId;
public String StudyName;
public List<Tanks> AssignedTanks;
}
//Tanks Class
public class Tanks{
public Guid TankId;
public String TankName;
}
//Logs Class
public class Logs{
public Guid LogId;
public Guid StudyId;
public Guid TankId;
public DateTime LogDate;
public double Log;
}
我还创建了一个ViewModel,用于保存分配给研究的每个储罐的日志列表
//ListOfLogs
public class ListOfLogs{
public List<Logs> ListLogs;
}
以及一种获得研究中所有指定储罐的方法,然后迭代结果以获得分配给该研究的每个储罐的日志
public static List<ListOfLogs> GetLogs(Guid StudyId) {
var StudyLogs = new List<ListOfLogs>;
var AssignedTanks = new List<Tanks>();
//Get the assigned tanks for the study
AssigendTanks = Study.GetTank(StudyID);
Guid _TankId;
//Loop to get the logs of each tanks
For(int i = 0; i < AssignedTanks.Count; i++) {
var GetLogs = new List<Logs>;
_TankId = AssignedTanks[i].TankId;
//Get the Logs of each tanks;
GetLogs = Logs.GetLogs(StudyId, _TankId);
//Add List<Logs> to List<ListOfLogs>
StudyLogs.add(GetLogs);
}
return StudyLogs;
}
我在StudyLogs.addGetLogs中出错;无法从“System.Collections.Generic.List”转换为“System.Collections.Generic.IEnumerable”
我不知道这是不是最好的方法
结果应返回可按储罐分类的所有日志的列表
List<Study> studies;
List<Log> logs = studies
.SelectMany(s => s.Tanks.SelectMany(t => t.Logs))
.ToList();
选择Many可展平嵌套集合。如果选择正确,从研究中的所有储罐获取所有日志的一种方法是:
var allLogs = new List<Log>;
Study.Tanks.ForEach(tank => allLogs.AddRange(tank.Logs));
现在,您可以从方法、属性返回所有日志,也可以随意返回。如果您的关系有问题,请将studyid添加到类池中,然后将其从类日志中删除。或添加日志列表来学习类,并将其访问为属性,如果考虑日志类考虑学习和池无关。使您的问题更容易理解,请显示类。我现在已经添加了这些类。很抱歉问题不太清楚。我增加了一个更清晰的问题。如果SelectMany展平一个嵌套集合,我是否可以仅获取结果(例如,储罐1的日志)?