gpt4 book ai didi

c# - 防止来自 LINQ 查询的新值

转载 作者:行者123 更新时间:2023-11-30 20:03:24 25 4
gpt4 key购买 nike

我在列表中有一些数据,我想对其进行查询。然而与此同时,其他用户可以添加到这个列表,而我得到错误的返回:

var query = from s in selected
where s.contains("www")
select s);

然后用户可以在查询运行之前将项目添加到选定列表,我也会得到这个。我可以阻止这种行为吗?:

selected.add("123www")

foreach (var s in query)
/// gives me 123www

最佳答案

var“query”只是分配给它的查询,但是当在例如 foreach 循环中访问查询时首先执行查询本身 - 因此您会得到新添加的数据。

如果你不想这样,你可以使用像“ToList()”这样的扩展方法,其中集合保持不变:

var queryResultList = (from s in selected
where n.contains("www")
select s).ToList();

此处 ToList() 立即迭代集合,您现在可以迭代 queryResultList 并获得正确的结果,即使新元素到达,输出也保持不变。

关于c# - 防止来自 LINQ 查询的新值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15097715/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com