I've assumed that the natural ordering of strings is what you mean by "between". If that is not true, you should look at the IComparable interface to have more control over ordering.
I've also made the comparisons exclusive. You can change the operators to make them inclusive, though.
class Program
{
static void Main(string[] args)
{
var postcode = "B";
var stations = DestinationStation.GetDestinationStations();
var query = from s in stations
where postcode.CompareTo(s.FromPostcode) > 0 && postcode.CompareTo(s.ToPostcode) < 0
select s;
Console.WriteLine(query.ToList());
}
}
public class DestinationStation
{
public string FromPostcode;
public string ToPostcode;
public static List<DestinationStation> GetDestinationStations()
{
return new List<DestinationStation> { new DestinationStation {FromPostcode = "A", ToPostcode = "C"},
new DestinationStation {FromPostcode = "A", ToPostcode = "A"},
new DestinationStation {FromPostcode = "C", ToPostcode = "C"},
new DestinationStation {FromPostcode = "C", ToPostcode = "A"},
};
}
}