我一天中大部分时间都在从事此工作,无法弄清楚如何将其创建为简单的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();

08-16 09:49