This is an awkward one. Cylinders with a straight suction floor tool are far better for bare floors. Uprights with rotating brushes are better for carpet, so you really need something that covers both.
I would highly recommend the Miele Cat & Dog or Henry Xtra. Both come with the straight suction tool for bare floors and the Turbo brush for carpet. The Henry is cheaper and has bigger bags. The Miele is pricier but has more features. Both are good machines though.
If you prefer an upright, the Sebo Felix would be a good choice as you can switch the brushroll off for use on bare floors and turn it back on for carpets