Lambda表达式来遍历集合并编辑C#

本文关键字:合并 编辑 集合 遍历 表达式 Lambda | 更新日期: 2023-09-27 18:23:59

如何使用Lambda表达式完成此操作?

foreach (var l in urllist)
{
  l.Url = l.Url + "?id=" + client.id+ "&active=" + client.Active;
}

Lambda表达式来遍历集合并编辑C#

不要使用Linq来修改集合,而是使用循环:

所以这是最好的方法(看看UriBuilder类):

foreach (var l in urllist)
{
    l.Url = string.Format("{0}?id={1}&active={2}", l.Url, client.id, client.Active);
}

你必须创建一个新的集合,否则什么比修改原始集合效率低:

urllist = urllist
    .Select(l => {l.Url = string.Format("{0}?id={1}&active={2}", l.Url, client.id, client.Active; return l;})
    .ToList();

如果urllistList<T>,您也可以使用pre-linq.NET2方法ForEach:

urllist.ForEach(l => l.Url = string.Format("{0}?id={1}&active={2}", l.Url, client.id, client.Active));

如果是List<T>,可以使用ForEach方法:

urlList.ForEach(x => x.Url += "?id=" + client.id+ "&active=" + client.Active);

否则,这将起作用,尽管它依赖于Count评估的副作用,并且我不建议将其用于生产代码:

urlList.Select(x => x.Url += "?id=" + client.id+ "&active=" + client.Active)
       .Count();

就我个人而言,我会坚持传统的foreach循环。

这就是您想要的吗?

urllist.ForEach(l => 1.Url = l.Url + "?id=" + client.id+ "&active=" + client.Active);