public static double CalcularDistancia(Amigo amigo1, Amigo amigo2) { double result = 0; double parcialValue = ((amigo1.latitude - amigo2.latitude) * (amigo1.latitude - amigo2.latitude)) + ((amigo1.longitude - amigo2.longitude) * (amigo1.longitude - amigo2.longitude)); result = Math.Sqrt(parcialValue); return(result); }
public static bool AdicionarAmigo(List <Amigo> lista) { Console.WriteLine("Digite o nome do amigo"); string nome = Console.ReadLine(); double latitude = InputLatitude(); double longitude = InputLongitude(); Amigo novoAmigo = new Amigo(nome, latitude, longitude); return(Amigo.AdicionarAmigo(lista, novoAmigo)); }
public static bool AdicionarAmigo(List <Amigo> listaAmigos, Amigo amigo) { foreach (Amigo ami in listaAmigos) { if (amigo.latitude == ami.latitude && amigo.longitude == ami.longitude) { return(false); } } listaAmigos.Add(amigo); return(true); }
public static void BuscarAmigosMaisProximos(List <Amigo> lista) { Console.WriteLine("Digite o nome do amigo que esta visitando."); string nome = Console.ReadLine(); List <Amigo> listaAmigos = Amigo.BuscarAmigosMaisProximos(lista, nome); if (listaAmigos.Count > 0) { Console.WriteLine("Os amigos mais próximos são:"); foreach (Amigo item in listaAmigos) { Console.WriteLine(item.nome); } } else { Console.WriteLine("Nenhum amigo encontrado."); } }
public static List <Amigo> BuscarAmigosMaisProximos(List <Amigo> listaAmigos, string nome) { Amigo amigoAtual = listaAmigos.FirstOrDefault(x => x.nome == nome); if (amigoAtual == null) { return(new List <Amigo>()); } List <Amigo> listaRetorno = new List <Amigo>(listaAmigos); listaRetorno.Remove(amigoAtual); foreach (Amigo ami in listaRetorno) { ami.distancia = CalcularDistancia(amigoAtual, ami); } listaRetorno = listaRetorno.OrderBy(x => x.distancia).Take(3).ToList(); return(listaRetorno); }