Получить все значения из списков сравнить и изменить их - PullRequest
0 голосов
/ 13 марта 2020

Я заблокирован, чтобы показать список участников, сравнить и изменить участников. Эта программа - автомобильный магазин, и у меня есть Продавцы (Продавец), Клиенты (тот же метод продавцов), и я буду иметь и интерфейс для автомобилей / грузов / и т. Д. 1028 * ...

на данный момент в 'концентрации Методы для этого списка:

public static List<Venditori> Venditori = new List<Venditori>();

Это свойства поставщиков:

public class Venditori
{

    public Guid Id { set; get; }
    public string NomeVenditore { get; set; }
    public string CognomeVenditore { get; set; }
    public string TelefonoVenditore { get; set; }
    public string EmailVenditore { get; set; }
    public bool VenditoreAttivo { get; set; }
    public string DateTime { get; set;  }



    public Venditori(Guid id, string nomevenditore, string cognomevenditore, string telefonovenditore,
                     string emailvenditore, bool venditoreattivo, string datetime)
    {
        this.Id = id;
        this.NomeVenditore = nomevenditore;
        this.CognomeVenditore = cognomevenditore;
        this.TelefonoVenditore = telefonovenditore;
        // Without this.
        EmailVenditore = emailvenditore;
        VenditoreAttivo = venditoreattivo;
        DateTime = datetime;

        venditoreattivo = true;

    }

}

Это метод для вставки значений, также выведите то, что я ' Мы просто вставляем в список:

public static Venditori Registravenditore()
    {


        Venditori v = new Venditori();
        v.Id = Guid.NewGuid();

        Console.Clear();

        Console.WriteLine();
        Console.WriteLine("-------------------------------------");
        Console.WriteLine("- Inserisci il Nome del Venditore : -");
        Console.WriteLine("-------------------------------------");


        v.NomeVenditore = Console.ReadLine();

        Console.Clear();


        Console.WriteLine();
        Console.WriteLine("----------------------------------------");
        Console.WriteLine("- Inserisci il Cognome del Venditore : -");
        Console.WriteLine("----------------------------------------");


        v.CognomeVenditore = Console.ReadLine();

        Console.Clear();


        Console.WriteLine();
        Console.WriteLine("-----------------------------------------");
        Console.WriteLine("- Inserisci il Telefono del Venditore : -");
        Console.WriteLine("-----------------------------------------");

        v.TelefonoVenditore = Console.ReadLine();

        Console.Clear();

        Console.WriteLine();
        Console.WriteLine("-------------------------------------");
        Console.WriteLine("- Inserisci la Mail del Venditore : -");
        Console.WriteLine("-------------------------------------");

        v.EmailVenditore = Console.ReadLine();

        v.DateTime = DateTime.Now.ToString();

        Liste.Venditori.Add(v);

        Console.Clear();



        Console.WriteLine("");
        Console.WriteLine("---------------------------------------------------------------------------------------------------");
        Console.WriteLine($"- Hai inserito il venditore {v.NomeVenditore} - {v.CognomeVenditore} - Avente GuId - {v.Id} - ");
        Console.WriteLine($"- Il telefono è : {v.TelefonoVenditore} - La sua mail è : {v.EmailVenditore}");
        Console.WriteLine($"- Il Venditore è attivo dal : {v.DateTime}");
        Console.WriteLine("---------------------------------------------------------------------------------------------------");
        Console.WriteLine("");




        return v;


    }

Проблема в следующем: Проблема 1: Когда я запускаю метод для перечисления (ElencoVenditori ()) всех Продавцов и соответствующих свойств, верните мне только последнюю вставку. Я пытался использовать Liste.Venditori.FindAll (), но мне нужно вставить какой-то параметр в FindAll, и я не знаю, что мне нужно передать. Поиск везде в сети, сначала в Microsoft.Docs, но ничего ... Это код:

 public static List<Venditori> ElencoVenditori()
    {
        // Eseguo un ForEach per ciclare dalla lista i miei dati. A differenza del While che cicla un condizionale
        // e For che cicla una index, questo comando è dedicato alle liste.
        // Associa alla variabile "item", tramite il comando "in", la lista venditori e mostra in console cosa contengono

        foreach (var item in Liste.Venditori)
        {

            Console.Clear();
            Console.WriteLine("");
            Console.WriteLine($"I Venditori presenti in Lista sono :  Nome - {item.NomeVenditore} | GuId - {item.Id}");
            Console.WriteLine($"                                      Telefono - {item.TelefonoVenditore} | Mail - {item.EmailVenditore}");
            Console.WriteLine($"                                      Venditore Aggiunto il -  {item.DateTime}");
            Console.WriteLine("");
            Console.WriteLine("");

        }

        return Liste.Venditori;



    }

Проблема 2 У меня есть другой метод (VerificaListaVenditori ()), который должен показать мне, если один "Venditore "присутствует или отсутствует в списке, используя в качестве индекса поиска имя (NomeVenditore) или фамилию (CognomeVenditore). При поиске по любому индексу я получаю и исключаю ошибку:


Unhandled Exception: System.FormatException: Index (zero based) must be greater than or equal to zero and less than the size of the argument list.
   at System.Text.StringBuilder.AppendFormatHelper(IFormatProvider provider, String format, ParamsArray args)
   at System.String.FormatHelper(IFormatProvider provider, String format, ParamsArray args)
   at System.String.Format(String format, Object[] args)
   at VenditaAutoConcessionarioConsole.Methods.VendorsMethods.VerificaListaVenditori() in C:\Users\Faggiano\source\repos\Progetti\ConcessionarioAuto\ConcessionarioAutoConsole\VenditaAutoConcessionarioConsole\Methods\VendorsMethods.cs:line 168
   at VenditaAutoConcessionarioConsole.Methods.ProgramMethods.VendorSelect() in C:\Users\Faggiano\source\repos\Progetti\ConcessionarioAuto\ConcessionarioAutoConsole\VenditaAutoConcessionarioConsole\Methods\ProgramMethods.cs:line 70
   at VenditaAutoConcessionarioConsole.Program.Main(String[] args) in C:\Users\Faggiano\source\repos\Progetti\ConcessionarioAuto\ConcessionarioAutoConsole\VenditaAutoConcessionarioConsole\Program.cs:line 53
Premere un tasto per continuare . . .

Это код:

public static void VerificaListaVenditori()
    {

        string nomevenditore = "";
        string cognomevenditore = "";

        Console.Clear();

        Console.WriteLine();
        Console.WriteLine("----------------------------------------------------------------");
        Console.WriteLine("- Inserisci il Nome od il Cognome del Venditore per la ricerca -");
        Console.WriteLine("-------------- (Restituisce le Proprietà) ----------------------");
        Console.WriteLine("----------------------------------------------------------------");
        Console.WriteLine();

        nomevenditore = Console.ReadLine();
        cognomevenditore = Console.ReadLine();


        string risultatoPositivo = "Il Venditore {0} è presente - Avente GuId {1} - " +
            "                       Il Cognome è {2} - Il Telefono è {3} - La Mail è {4}" +
            "                       E' attivo dal {5}";
        string risultatoNegativoNome = $"Il Venditore ''{nomevenditore}'' non è presente nella Lista";
        string risultatoNegativoCognome = $"Il Venditore ''{cognomevenditore}'' non è presente nella Lista ";



        int index = -1;

        for (int i = 0; i < Liste.Venditori.Count; i++)
        {


            if (nomevenditore == Liste.Venditori[i].NomeVenditore | cognomevenditore == Liste.Venditori[i].CognomeVenditore)
            {
                index = i;
                //// Visualizza risultatoPositivo ed interrompe il ciclo
                //Console.WriteLine(risultatoPositivo); 
            }

        }



        if (index >= 0)
        {
            Console.Clear();

            Console.WriteLine("---------------------------------------------------------");
            Console.WriteLine(String.Format(risultatoPositivo, Liste.Venditori[index].NomeVenditore, Liste.Venditori[index].Id, Liste.Venditori[index].CognomeVenditore, Liste.Venditori[index].TelefonoVenditore, Liste.Venditori[index].EmailVenditore));
            Console.WriteLine("----------------------------------------------------------");
        }

        else
        {
            Console.WriteLine("---------------------------------------------------------");
            Console.WriteLine(risultatoNegativoNome, risultatoNegativoCognome);
            Console.WriteLine("---------------------------------------------------------");
        }



    }

Полный код можно найти на GitHub .

1 Ответ

0 голосов
/ 13 марта 2020

Если доступ к List.Venditori осуществляется через индекс, то он должен быть от 0 до List.Venditori.Count-1.

Так что для l oop должно быть

for (int i = 0; i < Liste.Venditori.Count; i++)
{
 ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...