Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将列表添加到列表_C#_Asp.net - Fatal编程技术网

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的日志)?