在返回方法调用之前更新本地可查询列表

本文关键字:查询 列表 更新 返回 方法 调用 | 更新日期: 2023-09-27 18:04:53

在后续问题到我原来的帖子使用Foreach在iQueryable List找到值,如果在第二列表我无法找到一个解决方案,当我使用Foreach循环进行更改时,它更新本地列表。通过我的visual studio调试器,它确实更新了项目。如果在LookForMe列表中找到当前项,则使用LinkURL值。但是,当将Results.ToList()返回给我的调用方法时,此更新不在返回的集合中。在返回它们之前,我如何将这些保存到结果列表中?没有看到任何智能感知,像Results.Update()或Results.Save()这样的东西可以工作。

  foreach (var item in Results)
        {
            if (LookForME.Any(fs => item.LinkUrl.Contains(fs)))
            {
                item.LinkUrl = ServerPath + "/" + item.LinkUrl;   
                // works great until its time to return the updated Results list                 
            }
               // something here to update results with new value?
        }
        return Results.ToList();

在返回方法调用之前更新本地可查询列表

您需要使用ToList首先迭代,然后修改内存列表并返回该列表。

目前你的ResultIQueryable (更像一个查询)尚未执行。

你可以这样做:

var newList = Result.ToList(); //get a in-memory list
foreach (var item in newList) //modify in-memory list
{
        if (LookForME.Any(fs => item.LinkUrl.Contains(fs)))
        {
            item.LinkUrl = ServerPath + "/" + item.LinkUrl;   
            // works great until its time to return the updated Results list                 
        }
           // something here to update results with new value?
}
return newList;