public T Find(IFilter <T> filter) { T obj; for (int i = 0; i < this.list.Count; i++) { obj = LanguageUtility.ConvertValue <T>(this.list[i]); if (filter.Matches(obj)) { return(obj); } } return(default(T)); }
public List <T> FindAll(IFilter <T> filter) { List <T> outList = new List <T>(); T obj; for (int i = 0; i < this.list.Count; i++) { obj = LanguageUtility.ConvertValue <T>(this.list[i]); if (filter.Matches(obj)) { outList.Add(obj); } } //if nothing found then return null, otherwise return list return(outList.Count > 0 ? outList : null); }