I'm not familiar with LINQ, but is that roughly equivalent to
grains.select{|g|
g.is_a?(Salt) && g.value.blank?
}.sort{|a,b|
a.irrelevance <=> b.irrelevance
}.first