The code you gave should work fine:
String u = f + s + q + w + o;
Note that this will be converted by the compiler into:
String u = String.Concat(new String[] { f, s, q, w, o });
EDIT: All the other answers so far have suggested that StringBuilder is the right way to go here. It isn't. StringBuilder is great to avoid problems like this:
// Bad code - don't use
string result = "";
foreach (string value in collection) {
result += value;
}
In that case, there would be increasingly large temporary strings created because concatenation is performed on each iteration of the loop. The intermediate value is only required for the next iteration of the loop.
Now, in this case we know the whole result of the concatenation in a single go: f + s + q + w + o. The compiler converts that into a single invocation of String.Concat, so no temporary strings are required. Additionally, the String.Concat method can build a result string with exactly the right internal storage length, because it knows all of the contents to start with. In a StringBuilder, there's an initial capacity which is then increased through reallocation where necessary. That means that usually either the resulting string has a larger backing store than it needs, or there's a final "copy" stage to convert to a string of the right size. (Which course of action is taken is implementation-specific; I believe early versions of the framework used to do the former, and later versions do the latter.)