<p>I am looking for a very fast way to filter down a collection in C#.  I am currently using generic <code>List&lt;object&gt;</code> collections, but am open to using other structures if they perform better.</p>
<p>Currently, I am just creating a new <code>List&lt;object&gt;</code> and looping thru the original list.  If the filtering criteria matches, I put a copy into the new list.</p>
<p>Is there a better way to do this?  Is there a way to filter in place so there is no temporary list required?</p>

If you're using C# 3.0 you can use linq, which is way better and way more elegant:
```
```
List<int> myList = GetListOfIntsFromSomewhere();

// This will filter ints that are not > 7 out of the list; Where returns an
// IEnumerable<T>, so call ToList to convert back to a List<T>.
List<int> filteredList = myList.Where(x => x > 7).ToList();
```
```
If you can't find the
```
.Where
```
, that means you need to import
```
using System.Linq;
```
at the top of your file.