public List <CustomerDataObject> RetrieveFromList(List <CustomerDataObject> CustomerList, Retrieve_message Criteria) { try { Criteria = ValidateSearchCriteria(Criteria); List <CustomerDataObject> FilteredList; FilteredList = CustomerList.FindAll(delegate(CustomerDataObject Obj) { return(Obj.CustomerName.Contains(Criteria.Searchvalue) || Obj.Emailid == Criteria.Searchvalue || Obj.Gender.Contains(Criteria.Searchvalue)); }); if (Criteria.End_index > FilteredList.Count) { Criteria.End_index = FilteredList.Count; } FilteredList = FilteredList.GetRange((Criteria.Start_index - 1), Criteria.End_index - Criteria.Start_index + 1); switch (Criteria.Sortparam) { case "Name": FilteredList = FilteredList.OrderBy(cc => cc.CustomerName).ToList <CustomerDataObject>(); break; case "Gender": FilteredList = FilteredList.OrderBy(cc => cc.Gender).ToList <CustomerDataObject>(); break; case "Emailid": FilteredList = FilteredList.OrderBy(cc => cc.Emailid).ToList <CustomerDataObject>(); break; } return(FilteredList); } catch { throw; } }