gpt4 book ai didi

c# - 在 Linq Select 上调用 ToList()

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

我正在尝试为每条记录迭代调用 TransformCvlValue 的集合。

fields?.Select(x => TransformCvlValue(x, cvl)).ToList();

如果我调用 .ToList(),它会按预期工作。为什么需要调用.ToList()

还有其他方法吗?

最佳答案

调用 Select()IEnumerable<T> 上不会立即执行操作,而是构建一个新的 IEnumerable<T>使用指定的转换/操作。通常,LINQ 扩展方法仅在 IEnumerable<T> 时被调用。 s 被具体化,例如通过在 foreach 中迭代它们或调用 .ToList() .

Select()当你真的想将元素从一种类型投影到另一种类型时,应该主要使用,例如通过对元素应用投影。当您想为 IEnumerable<T> 中的每个元素调用一个方法时,不应使用它.

对我来说,最易读的直接方法可能是简单地遍历字段:

if (fields != null)
{
foreach (var field in fields)
{
TransformCvlValue(field, cvl);
}
}

这清楚地表明了您希望代码做什么,并且在您或您的同事将来必须维护代码时也很容易理解。

关于c# - 在 Linq Select 上调用 ToList(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47932063/

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