It's case-sensitive so "Infosys" doesn't contain "inf", but it does contain "Inf". Try something like
List<CompanyDetails> cp = new List<CompanyDetails>();
cp.Add(new CompanyDetails { companyName = "Compudyne Winfosystems Limited" });
cp.Add(new CompanyDetails { companyName = "Infosys" });
List<CompanyDetails> cpName = cp.Where(p => p.companyName.IndexOf("inf", StringComparison.CurrentCultureIgnoreCase) != -1).ToList();