gpt4 book ai didi

c# - 帮助 LINQ 查询

转载 作者:太空宇宙 更新时间:2023-11-03 18:44:45 24 4
gpt4 key购买 nike

我目前有一个供应商类的列表,在该供应商类中是一个订单列表。

每个订单都有一个用户 ID 和一个用于用户名的空字符串变量。

然后我有一个包含用户 ID 和用户名的用户列表。

我现在的做法是:

foreach(supplier s in SupplierList)
{
foreach (order o in s.childorders)
{
user u = _users.First(p => p.userid == o.userid);
o.username = u.username;
}
}

我觉得这可能有点低效,我想知道是否可以将它压缩成一个 linq 查询?

逻辑应该是

将 supplierslist.childorders.username 设置为 _users 中的值,其中 supplierslist.childorders.userid == _users.userid

我是 Linq 的新手,所以对此的任何建议都会受到赞赏,或者如果它是一个坏主意并且保持原样/原因也是好的。

谢谢

最佳答案

您在这里要做的是遍历一个集合(很多集合,真的,但这没有什么区别)并改变它的成员。 LINQ 并不是真正针对执行变异操作,而是针对查询。你可以用 LINQ 做到这一点,但它是 against the spirit of the tool .

如果您自己构建 SupplierList,则可以使用 LINQ 适本地获取数据,以便按照您的意愿预先填充数据。

否则,我会保留 foreach 原样。您可以创建一个将 ID 映射到用户的字典,以使内部循环更快,但这取决于您的数据大小。

关于c# - 帮助 LINQ 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5394948/

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