使用lambda会降低代码可读性吗?

看到下属的程序员有这么一段代码(filename就是图片url地址的用逗号拼接的字符串,功能就是用,分割出来批量插入数据库,filename前面已经做了非空检查),觉得实在太罗嗦,忍不住重构了一下,并且在某条晒了出来。 

if (fileName.Contains(','))
            {
                string[] arr = fileName.Split(',');
                foreach (var itme in arr)
                {
                    list.Add(new Resource { Category = ResourceCategory.Inquire, Relate_ID = relateID, FileName = itme });
                }
            }
            else
            {
                list.Add(new Resource { Category = ResourceCategory.Inquire, Relate_ID = relateID, FileName = fileName });
            }


if (list != null && list.Count > 0)
            {
                using (var trans = db.Database.BeginTransaction())
                {
                    try
                    {
                        foreach (var item in list)
                        {
                            db.Resource.Add(item);
                        }
                        db.SaveChanges();
                        trans.Commit();
                    }
                    catch (Exception ex)
                    {
                        message = ex.Message;
                        trans.Rollback();
                    }
                }

我改了写法如下(注意fileName不为空前面已经判断过了)

await db.AddRangeAsync(fileName.Split(',').Select(p => new Resource { Category = ResourceCategory.Inquire, Relate_ID = relateID, FileName = p }));
await db.SaveChangesAsync();

  但是真没想到的是大部分居然说重构后可读性差,我真的是郁闷。微软推出linq和lambda10多年了,我也写了10多年了,从来没觉得可读性差,现在的年轻程序员是怎么回事呢?确实是我的问题?是我太落后了?

这文章实在没有什么技术含量,我是不好意自己推荐到首页首选区,但我真的很好奇想问问院子的兄弟,因为这里应该是国内.net的水平比较高的程序员集中营了吧,问一下使用lambda有什么问题吗?

 

posted on 2020-12-03 12:24  lindping  阅读(1282)  评论(1编辑  收藏  举报