gpt4 book ai didi

c# - 如何修改 IEnumerable 集合中的项目并保留其顺序

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

我有以下情况。我有一个带有“Id”的项目列表。我必须搜索具有特定 ID 的项目,修改其值并维护集合的顺序。最好的方法是什么?

var collection = <some_linq_query>

collection.Where(i=>i.Id=someId).FirstOrDefault().Property = "bla";

// now collection should be the same but the item updated.

最佳答案

对 Where 的调用不会修改存储在 collection 中的原始 LINQ 查询以任何方式。相反,它会创建一个新的 IEnumerable<T>其中 是原始查询的子集。该子集将与 collection 中的原始集具有相同的相对顺序。

这可能导致问题的唯一方法是如果值 collection是一个 LINQ where,它有一个 Where 子句,或者根据 Property 的值进行过滤.如果是这种情况,并且您希望通过 .ToList 将订单强制集合保存到非惰性求值结构中。

collection = collection.ToList();

关于c# - 如何修改 IEnumerable 集合中的项目并保留其顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2248602/

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