Querying .NET DataSet and ignore rows that contain NULL
What you have is fine. You could restructure it to eliminate one of the selects, but then you would repeat yourself with the row. 

var altIds = myDataSet.Tables[0].AsEnumerable()
                 .Where(row =&gt; row.Field&lt;Guid?&gt;("AltId").HasValue)
                 .Select(row =&gt; row.Field&lt;Guid?&gt;("AltId").Value)
                 .ToArray();


You could rewrite it in query expression syntax, but that's only less complicated if you find fluent syntax more so. 

var altIds = (from row in myDataSet.Tables[0].AsEnumerable()
             let x = row.Field&lt;Guid?&gt;("AltId")
             where x.HasValue
             select x.Value).ToArray();


Either way, it's six in one hand, half a dozen in the other. I find your code readable, and it passes the "does what it is supposed to" test, so I wouldn't worry about this snippet.