public IEnumerable<string> TileNamesWith(string propertyName)
{
foreach (var item in Properties.Values)
{
if (item.Any(item2 => item2.Name == propertyName))
{
var hasName = item.Any(item2 => item2.Name == "Name");
if (hasName)
{
yield return item.First(item2 => item2.Name == "Name").Value as string;
}
}
}
}