Return a list of values from a single column in a DataTable
Two code-style issues are immediately obvious:


Use braces for 1-liners
only split lines where it overflows


Code like:


var item = result
   .SingleOrDefault(e =&gt; e == "Order");
if (item != null)
    baseTypes.Add(item);
item = result
   .SingleOrDefault(e =&gt; e == "Motion");



Should be

var item = result.SingleOrDefault(e =&gt; e == "Order");
if (item != null)
{
    baseTypes.Add(item);
}
item = result.SingleOrDefault(e =&gt; e == "Motion");


Then, the logical thing to do to simplify those cascading statements, is to create an array of keys to look for (perhaps by loading from a configuration file, or as a static constant array...):

string[] keys = {"Order", "Motion", .....};


then loop through them like:

foreach (string key in keys)
{
    var item = result.SingleOrDefault(e =&gt; e == key);
    if (item != null)
    {
        baseTypes.Add(item);
    }
}