Convert an array of doubles to a concatenated Hex string
string is immutable type, whenever you modify a string, it actually creates a new string.

if you convert it to StringBuilder such as : 

var sb = new StringBuilder(string.Empty);

foreach (var value in list)
    sb.Append(DoubleToHex(value.lat)).Append(DoubleToHex(value.lon));


You'll gain more performance. 

However, the DoubleToHex() also can simplified further to : 

public static string DoubleToHex(double input)
{
    return BitConverter.ToString(BitConverter.GetBytes(input)).Replace("-", "");
}


this will boost the performance further.