C# EF表示法中两个列表的迭代

C# EF表示法中两个列表的迭代,c#,C#,我正在使用EF MVC。 在我的模型中,我有一个想要变成学生的用户,我需要为学生分配一些字段。我正在制作一个方法,将用户批给学生,我需要为学生分配一些字段。这就是我目前正在做的事情 var students = db.Students.AsQueryable(); var users = db.Users.Where(u => !students.Any(s => s.UserId == u.Id) ).ToList();//exclu

我正在使用EF MVC。 在我的模型中,我有一个想要变成学生的用户,我需要为学生分配一些字段。我正在制作一个方法,将用户批给学生,我需要为学生分配一些字段。这就是我目前正在做的事情

            var students = db.Students.AsQueryable();
            var users = db.Users.Where(u => !students.Any(s => s.UserId == u.Id) ).ToList();//exclude current students from users

            Student[] filteredStudents = new Student[users.Count];
            var i = 0;

            foreach (var user in users)
            {
                filteredStudents[i] = (Student)user;
                filteredStudents[i].CreatedDate = DateTime.Now;
                filteredStudents[i].ModifiedDate = DateTime.Now;
                i++;
            }
            db.Students.AddRange(filteredStudents);
在我的学生班上

        public static explicit operator Student(User user)
        {
            Student student = new Student() { UserId = user.Id, ApplicationUser = user };
            return student;
        }
我觉得应该有更优雅的东西我错过了。 我看过ZIP,但我想要一些类似EF符号的东西,比如这个伪代码

var finalList = students.AssignMany(UserId = Id, this.User = User,  Users.Select(Id, User)); 
这可能吗?

通过使用,您可以使用函数接收用户并返回学生,然后将其作为参数传递。
ConvertAll
函数将返回学生列表

var users = db.Users.Where(u => !students.Any(s => s.UserId == u.Id) ).ToList();//exclude current students from users

var newStudents = users.ConvertAll(new Converter<User, Student>(UserToStudent));  //newStudents will contain the converted users, to do with what you want.


......snip.....

function static Student UserToStudent(User toConvert){
    Student student = new Student(){UserId = toConvert.Id, ApplicationUser = toConvert, CreatedDate = DateTime.Now, ModifiedDate = DateTime.Now};
    return student;
}
var users=db.users.Where(u=>!students.Any(s=>s.UserId==u.Id)).ToList()//从用户中排除当前学生
var newStudents=users.ConvertAll(新转换器(UserToStudent))//newStudents将包含转换后的用户,以满足您的需要。
剪
函数static Student UserToStudent(User toConvert){
Student Student=new Student(){UserId=toConvert.Id,ApplicationUser=toConvert,CreatedDate=DateTime.Now,ModifiedDate=DateTime.Now};
留学生;
}

ConvertAll()
将日期放入转换器?谢谢!有没有一种方法可以迭代两个列表,并使用这两个列表中的信息来创建一个新的对象列表?类似于Converter的东西?听起来您只是想先将两个列表合并在一起<代码>列表1.concat(列表2).convertAll(…)是不同类型的列表吗?是。我有一个学生列表和一个我想注册的课程列表,这会创建一个学生课程列表。