I’m looking through a generic list to find items based on a certain parameter.
In General, what would be the best and fastest implementation?
1. Looping through each item in the list and saving each match to a new list and returning that
foreach(string s in list) { if(s == 'match') { newList.Add(s); } } return newList;
Or
2. Using the FindAll method and passing it a delegate.
newList = list.FindAll(delegate(string s){return s == 'match';});
Don’t they both run in ~ O(N)? What would be the best practice here?
Regards, Jonathan
You should definitely use the
FindAllmethod, or the equivalent LINQ method. Also, consider using the more concise lambda instead of your delegate if you can (requires C# 3.0):