C# EF表示法中两个列表的迭代
我正在使用EF MVC。 在我的模型中,我有一个想要变成学生的用户,我需要为学生分配一些字段。我正在制作一个方法,将用户批给学生,我需要为学生分配一些字段。这就是我目前正在做的事情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
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(…)是不同类型的列表吗?是。我有一个学生列表和一个我想注册的课程列表,这会创建一个学生课程列表。