我正在寻找一种非常快速的方法来过滤C#中的集合。我目前正在使用通用的List 集合,但是如果它们的性能更好,则可以使用其他结构。
当前,我只是创建一个新的List 并循环遍历原始列表。如果过滤条件匹配,我将副本放入新列表。
有一个更好的方法吗?有没有一种方法可以进行过滤,所以不需要临时列表?
如果您使用的是C#3.0,则可以使用linq,效果更好,更优雅:
List<int> myList = GetListOfIntsFromSomewhere(); // This will filter out the list of ints that are > than 7, Where returns an // IEnumerable<T> so a call to ToList is required to convert back to a List<T>. List<int> filteredList = myList.Where( x => x > 7).ToList();
如果找不到.Where,则意味着您需要using System.Linq;在文件顶部导入。
.Where
using System.Linq;