用匿名方法替换函数调用

问题描述

| 我觉得我好笨。你们可以帮我用匿名代替GetCamp(x)吗? 这段代码:
   aspnet_Users.ForEach(x =>
        {
            usersVm.Add(new User{
                 Camp = Mapper.Map<DbCamp,Camp>(GetCamp(x)),});
        }); 


    private DbCamp GetCamp(aspnet_Users x)
    {
        //... some code ...
        return someDbCamp;
    }
应该是这样的:
   aspnet_Users.ForEach(x =>
    {
         usersVm.Add(new User{
              Camp = Mapper.Map<DbCamp,Camp>
              (
                    Func<DbCamp>(aspnet_Users u) => 
                    { 
                         //... some code ...
                          return someDbCamp;
                    }
               ),});
     }); 
那是行不通的,因为
Mapper.Map<Database.Camp,Camp>
需要对象
typeof(DbCamp)
作为参数,而不是委托。我当然可以使用正常的功能,但是从学术角度来看,我想知道这里是否可以使用匿名方法。     

解决方法

我认为这应该处理空洞的情况。
x => x.Users.Any() ? x.Users.First().Camp : null
在上下文中:
_dataContext.aspnet_Users.ToList().ForEach(x =>
    {
        usersVm.Add(new User{
             Camp = Mapper.Map<Database.Camp,Camp>(
                  x => x.Users.Any() ? x.Users.First().Camp : null),});
    }); 
    ,这不起作用:
x => GetCamp(x)
?     ,
aspnet_Users.ForEach(x =>
{
    usersVm.Add(new User{ Camp = Mapper.Map<DbCamp,Camp>({ /*... some code using x ...*/ return someDbCamp; }) });
});
    

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...