I just found some stats on this yesterday, which I found very interesting, but decided it was too geeky to post anything about it on here. However, here is my perfect excuse. There are lots of statistics over at
www.foreigners.ch, particularly linked from
this page.
The most interesting document for you would be
this one giving the number of non-Swiss living in each canton. The numbers you are looking for are 139,544 non-Swiss in Geneva, or 33.9% of the population. This includes 4,379 on L-permits (described as "short-term residents"), 38,517 on B-permits (described as "residents"), and 96,648 on C-permits (described as "settled residents"). The equivalent numbers for the whole country are 1,541,931 or 20.6% of the population, of whom 37,969 have L-permits, 422,699 have B-permits, and 1,081,263 have C-permits. You can also see in the document how these numbers have increased over the last five years: Across all of Switzerland, the total number of L- and B-permit holders has gone up by almost 30%, and the number of C-permit holders has not really changed. (These figures are all from August 2007)
There is also
this document, which gives the number of foreign residents (their term for expat) from each country. From the English-speaking countries, there are 24,867 from the UK, 1,780 from Ireland, 18,640 from North America, and 2,751 from Oceania (sorry for the lack of detail in the last two). (These figures are for the whole of Switzerland and are from December 2006)