Two code-style issues are immediately obvious:
1. Use braces for 1-liners
2. only split lines where it oveflows
Code like:
> var item = result
> .SingleOrDefault(e => e == "Order");
> if (item != null)
> baseTypes.Add(item);
> item = result
> .SingleOrDefault(e => e == "Motion");
Should be
var item = result.SingleOrDefault(e => e == "Order");
if (item != null)
{
baseTypes.Add(item);
}
item = result.SingleOrDefault(e => e == "Motion");
Then, the logical thing to do to simplify those cascading statements, is to create an array of keys to look for:
string[] keys = {"Order", "Motion", .....};
then loop through them like:
foreach (string key in keys)
{
var item = result.SingleOrDefault(e => e == key);
if (item != null)
{
baseTypes.Add(item);
}
}