【发布时间】:2015-09-29 03:02:09
【问题描述】:
在不使用 LINQ 的情况下,我在 C# 中尝试实现的是根据这些对象的参数之一的值对自定义类对象列表进行子集化。
假设我的列表声明如下:
List<MyCustom> listofobj = new List<MyCustom>();
另外,假设自定义类对象“MyCustom”可以返回两个参数:MyCustom.name 和 MyCustom.age
有没有一种方法可以让我检索并保存到一个临时的新列表(我们称之为“templist”)中,原始列表的子集(即“listofobj”)由其所有具有“年龄”的 MyCustom 对象形成参数大于 30?谢谢!
【问题讨论】:
-
循环遍历列表,将满足谓词的元素添加到新列表中。这实际上与方法语法中的 where 子句后跟 to 列表相同。 Linq 会更有效率和可读性。为什么不使用它?
-
感谢您的评论!所以,首先我很抱歉没有提到我的意思是是否存在与所有条目中的蛮力循环不同的东西(我的列表有数千行)。我将编辑 que 问题。其次,是否有任何资料显示 LINQ 在处理时间方面比 for 循环更有效?我总是发现相反的结论,尽管 LINQ 确实更具可读性
-
@MAnd - 使用可读的 LINQ 除非您有明显的性能问题。即使这样使用
for循环也可能只会带来很小的性能提升。