c# – 从集合中收集数据时,我应该使用简单的foreach或Linq吗?
发布时间:2020-12-15 23:57:28 所属栏目:百科 来源:网络整理
导读:对于一个简单的例子,其中类foo有一个成员i,并且我有一组foos,比如IEnumerable Foo foos,我想最终得到foo的成员i的集合,比如List TypeOfi结果. 问题:是否最好使用foreach(下面的选项1)或某种形式的Linq(下面的选项2)或其他方法.或者,或许,它甚至不值得我自己
对于一个简单的例子,其中类foo有一个成员i,并且我有一组foos,比如IEnumerable< Foo> foos,我想最终得到foo的成员i的集合,比如List< TypeOfi>结果.
问题:是否最好使用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); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |