Simplifying ToString() implementation
I find that writing it this way makes it more maintainable and relatively efficient.

public class Information
{
    public string Country { get; set; }
    public string City { get; set; }
    public string Street { get; set; }
    public string Block { get; set; }
    public string Building { get; set; }
    public string Latitude { get; set; }
    public string Longitude { get; set; }

    private IEnumerable&lt;Tuple&lt;string[], string&gt;&gt; DataFormatPairs()
    {
        yield return Tuple.Create(new[] { Country },             "{0}");
        yield return Tuple.Create(new[] { City },                "city {0}");
        yield return Tuple.Create(new[] { Street },              "street {0}");
        yield return Tuple.Create(new[] { Block },               "block {0}");
        yield return Tuple.Create(new[] { Building },            "building {0}");
        yield return Tuple.Create(new[] { Latitude, Longitude }, "coordinates {0}:{1}");
    }
    public override string ToString()
    {
        var data = DataFormatPairs()
            .TakeWhile(p =&gt; p.Item1.All(s =&gt; !String.IsNullOrWhiteSpace(s)))
            .Select(p =&gt; String.Format(p.Item2, p.Item1));
        return String.Join(", ", data);
    }
}