You can get the length of the longest address and use TakeWhile
var sortedDesc = listAddr.OrderByDescending(x => x.Address.Length);
int longestAddress = sortedDesc.First().Address.Length;
var longest = sortedDesc.TakeWhile(x => x.Address.Length == longestAddress);
Alternatively you could group by address length and then get the 'largest' group:
var longest = listAddr.GroupBy(x => x.Address.Length)
.Max(grp => grp.Key);
EDIT: To print them out you can just loop through the collection of largest addresses:
foreach(var address in longest.Select(x => x.Address))
{
System.Console.WriteLine("Address: {0}, length: {1}", address, address.Length);
}