It's pretty variable between species, and I have heard that Bosemani Rainbows can live over 4 years, and have heard 4-5 years for cardinals. The genetic stock quality of the fish is a huge factor
IMHO, and unless you know the breeder, that's pretty hard to get a handle on.