Skip to content

Instantly share code, notes, and snippets.

@mhinze
Created May 18, 2010 15:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mhinze/405134 to your computer and use it in GitHub Desktop.
Save mhinze/405134 to your computer and use it in GitHub Desktop.
// old method
public override T[] Filter<T>(IEnumerable<T> filterableObjects)
{
var filteredObjects = new List<T>();
string[] searchTerms = GetCommaDelimitedSearchTerms();
foreach (T filterableObject in filterableObjects)
{
object[] values = _criterion.GetValues(filterableObject);
foreach (string searchTerm in searchTerms)
{
foreach (object filterableValue in values)
{
if (filterableValue == null)
{
continue;}
string value = filterableValue.ToString();
if(value.Contains(searchTerm))
{
filteredObjects.Add(filterableObject);
}
}
}
}
return filteredObjects.Distinct().ToArray();
}
// after resharper
public override T[] Filter<T>(IEnumerable<T> filterableObjects)
{
var searchTerms = GetCommaDelimitedSearchTerms();
var filteredObjects = from filterableObject in filterableObjects
let values = _criterion.GetValues(filterableObject)
from searchTerm in searchTerms
from filterableValue in values
where filterableValue != null
let value = filterableValue.ToString()
where value.Contains(searchTerm)
select filterableObject;
return filteredObjects.Distinct().ToArray();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment