Copy & Paste the following codes in LinqPad. And, in LinqPad's Language dropdown > choose "C# Program" and press F5 to run:
void Main() { var userprofileList = new UserProfile { FirstName = "John" , LastName = "Doe" }; var userprofileList1 = new UserProfile { FirstName = "Juan" , LastName = "Dela Cruz" }; var countryList = new Country{ Population= 105, City = "Cebu"}; var arrlist = new ArrayList(); arrlist.Add(userprofileList); arrlist.Add(countryList); arrlist.Add(userprofileList1); arrlist.Dump(); var filteredList = arrlist.OfType<UserProfile>(); ("OfType() result.").Dump(); filteredList.Dump(); var myFilteredList = arrlist.Cast<object>().ToList().FilterArr<UserProfile>(); ("Custom type-filtering FilterArr() method result.").Dump(); myFilteredList.Dump(); } public static class Extensions { public static List<X> FilterArr<X>(this IEnumerable<dynamic> source) where X : class { var filterList = source.Where(itm => itm is X).Cast<X>(); return filterList.ToList(); } } public class UserProfile { public string FirstName { get;set; } public string LastName { get;set; } } public class Country { public int Population { get;set; } public string City { get;set; } }