The switch statement doesn't look much cleaner, if you consider the consequences. Take the following hypothetical code which would compile if c# worked as implied in the question, which it does not:
switch
{
case (item.Contains("Phone")): return 1;
case (item.Contains("Computer")): return 2;
case (item.Contains("Car")): return 3;
}
Now, if item
contains Phone, Computer and Car, what should be returned? Switch statements have to be simple multiple choice statements where only one answer can be true. That's why they only accept simple types, and not conditions. They work like this:
switch (item)
{
case "Phone": return 1;
case "Computer": return 2;
case "Car": return 3;
}