gpt4 book ai didi

c# - 从集合中收集数据时,我应该使用简单的 foreach 还是 Linq

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

对于一个简单的例子,其中 class foo有成员(member)i ,我有一个 foo 集合,比如说 IEnumerable<Foo> foos ,我想以 foo 的成员 i 的集合结束,说 List<TypeOfi> result .

问题:最好使用 foreach(下面的选项 1)或某种形式的 Linq(下面的选项 2)或其他方法。或者,也许,它甚至不值得我担心(只需选择我个人的喜好)。

选项 1:

foreach (Foo foo in foos)
result.Add(foo.i);

选项 2:

result.AddRange(foos.Select(foo => foo.i));

对我来说,选项 2 看起来更简洁,但我想知道 Linq 是否过于繁重,无法通过如此简单的 foreach 循环实现。

征求大家的意见和建议。

最佳答案

与第一个相比,我更喜欢第二个选项。但是,除非有理由预先创建 List<T>并使用 AddRange ,我会避免它。就个人而言,我会使用:

 List<TypeOfi> results = foos.Select(f => f.i).ToList();

此外,我什至不一定会使用 ToList()除非你真的需要一个真正的 List<T> ,或者需要强制立即执行而不是延迟执行。如果您只需要迭代“i”值的集合,我会简单地使用:

 var results = foos.Select(f => f.i);

关于c# - 从集合中收集数据时,我应该使用简单的 foreach 还是 Linq,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5095135/

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