我一天中大部分时间都在从事此工作,无法弄清楚如何将其创建为简单的Lambda表达式:
public IReadOnlyList<UserActivity> GetListOfUserActivities()
{
List<UserActivity> userActivities = new List<UserActivity>();
List<Activity> activities = _activityDataAccess.GetActivities();
foreach (var activity in activities)
{
UserActivity userActivity = _mapper.Map<UserActivity>(activity);
userActivity.Parent = this;
userActivities.Add(userActivity);
}
return userActivities;
}
简而言之:
我想将活动转换为UserActivity
我正在使用AutoMapper来做到这一点;效果很好。
然后,我想在转换后的对象中为此设置一个父引用,即UserActivities;简单地讲,我就可以使用UserActivities数据库访问权限为UserActivity提供“删除”方法。
然后,我想返回一个IReadOnlyList。
这是我到达的地方:
activities
.ConvertAll(act => _mapper.Map<UserActivity>(act))
.Select(uac => uac.Parent = this).ToList();
但这真的不开心!
最佳答案
那这个呢?
activities
.Select(act =>
{
var userActivity = _mapper.Map<UserActivity>(act);
userActivity.Parent = this;
return userActivity;
}).ToList();