批量修改list可以这样写吗?

-一个大坑 2018-06-04 10:22:18

var paymentList = DlrPaymentService.GetList(o => o.StartDate <= payment.StartDate).ToList();
if (paymentList.Count > 0)
{
foreach (var item in paymentList)
{
item.EndDate = payment.StartDate;
}
_service.EditRange(paymentList);
}
...全文
634 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
巴士上的邂逅 2018-06-04
  • 打赏
  • 举报
回复
可以简化成这样
var paymentList = DlrPaymentService.GetList(o => o.StartDate <= payment.StartDate).Select(a=>{a.EndDate = payment.StartDate; return a;}).ToList();
 if (paymentList.Count > 0)
 {
      EditRange(paymentList);
 }
  • 打赏
  • 举报
回复
_service.EditRange:这个方法应该是批量修改 _service.EditSave:这个方法是单一修改 上述两种写法都是可行的(在两种方法都可用的情况下) 不考虑_service.EditRange的内部实现原理,推荐使用该方法。毕竟循环调用与批量处理之间批量处理更加优雅,所谓的性能一说也高些。
正怒月神 2018-06-04
  • 打赏
  • 举报
回复
你要看你的_service.EditRange是怎么实现的。 光从方法名看的话,应该是没问题的。
-一个大坑 2018-06-04
  • 打赏
  • 举报
回复

foreach (var item in paymentList)
                                {
                                    item.EndDate = payment.StartDate;
                                    _service.EditSave(item);
                                }
现在是这样写的

17,741

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET Framework
社区管理员
  • .NET Framework社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧