private List <Searchable> GetSearchableColumns <T>(IQueryProvider <T> objectList) { var first = objectList.FirstOrDefault(); if (first == null) { return(null); } List <Searchable> searchableList = new List <Searchable>(); var properties = objectList.First().GetType().GetProperties(); foreach (var property in properties) { var name = property.Name; var type = property.PropertyType; if (type == typeof(string) || type == typeof(float) || type == typeof(double) || type == typeof(int) || type == typeof(decimal) || type == typeof(long)) { searchableList.Add(new Searchable { Name = name, Type = type }); } } return(searchableList); }