Anurag Panda1 Ответов: 3

Проверьте строку 41 для вопроса..просьба помочь


using System;
using System.Collections;
using System.Collections.Generic;

class MainClass {
  public static void Main (string[] args) {
    Console.WriteLine ("Gimme some values to add to key and value");
    Console.Write("Key: ");
    string a = Console.ReadLine();
    Console.Write("Value: ");
    string b = Console.ReadLine();
    var anurag = new Dictionary<string, string="">();
    anurag.Add(a, b);
  while(true){
    Console.WriteLine("Do you want to add another entry?");
    string c = Console.ReadLine();
    
    if(c.ToLower()=="yes"){
      Console.Write("Write Name: ");
      string d = Console.ReadLine();
      Console.Write("Write Value: ");
      string e = Console.ReadLine();
      anurag.Add(d, e);
      Console.WriteLine("Do to want to view the whole list or add another person?");
      string f = Console.ReadLine();
      if (f.ToLower()=="view"){
        Console.WriteLine("All the people");   
  
        foreach (KeyValuePair<string, string=""> person in anurag)  
       {  
        Console.WriteLine("Key: {0}, Value: {1}",  
            person.Key, person.Value);  
       }  

      }else if(f.ToLower()=="add"){
        
        continue;
      }
    }
    else{
      //this part of the program wont work.. is it because i put "continue;"? If yes, how do i fix it? and also it says error on (42, 33) CS1501 No overload for method'ReadLine' also how do i loop back this part of the code so that after this part of code is over it comes back to ask if they want to add another name or not. Also while you are at it, pls suggest me ways to improve my code... Thanks :)
      Console.WriteLine("Do to want to remove or edit a person?");
      string remOrEdit= Console.ReadLine("");
      if(remOrEdit.ToLower()=="Edit"){
        Console.Write("Enter the name of the person you want to edit: ");
        string FrEdit = Console.ReadLine();
        Console.Write("Change the value to? ");
        string ValEdit = Console.ReadLine();
        anurag[FrEdit]=ValEdit;
      }
      }
    }
   }
  }<pre>

What I have tried:

I dunno what to try my program wont run for the error mentioned in line 41 so i dunno what to try.. If that error wasnt there trust me i wouldve tried my best to resolve the issue...

3 Ответов

Рейтинг:
21

Sandeep Mewara

1. Всегда разделить код так, чтобы повторяющиеся части-это метод письменного раз и можно назвать при необходимости.

Asking for key-value and adding to dictionary in your case

2. Вы должны четко указывать тип ответа, когда задаете запрос. Например (Y/N или yes/no вместе с запросом)
Do you want to add another entry?

3. Всегда используйте значимые имена переменных для удобства чтения и контекста
var anurag = new Dictionary<string, string= "" > ();

4. разделите обязанности на конкретные методы
Having add, view & delete of the values in one place confuses the sequence and makes it difficult to read


Теперь, с вашим кодом:
1. Неправильный синтаксис
string remOrEdit = Console.ReadLine("");

Должно быть:
string remOrEdit = Console.ReadLine();

2. Выход из цикла while
while(true)

Вы явно использовали true в качестве условия, которое никогда не будет ложным, таким образом, приложение с бесконечным циклом. Ваш continue хотя требуется другая итерация while. Таким образом, ваша другая часть там никогда не выполняется.

Попробуйте разбить его и иметь четкую последовательность вещей, чтобы иметь легкий контроль над вашими операциями.


Рейтинг:
0

Richard MacCutchan

string remOrEdit= Console.ReadLine("");

То Линия чтения[^] метод не принимает строку в качестве параметра.
if(remOrEdit.ToLower()=="Edit"){

Почему вы используете заглавную букву в строке, которую пытаетесь сравнить со всеми строчными буквами?

Могут быть и другие проблемы, которых я не заметил.


Рейтинг:
0

OriginalGriff

Просто чтобы добавить к тому что сказал Ричард:
Ваша петля не имеет выхода:

while(true){
Где-то в этом цикле вам нужен break; чтобы выйти из цикла, или return; чтобы выйти из метода.

Я также настоятельно рекомендую вам правильно отступать в своем коде: это значительно облегчает его чтение, а следовательно, понимание и обслуживание. Visual Studio сделает это за вас, как только вы избавитесь от ошибок компилятора, просто нажмите "CTRL+K D", и он отформатирует ваш документ в соответствии с выбранным вами стилем отступа.

Когда вы избавитесь от ошибок компилятора, попробуйте использовать отладчик - он поможет вам точно понять, что происходит во время выполнения вашего кода - Google для "Visual Studio Debugger", и вы найдете множество справок о том, как его использовать. Это действительно ваш самый лучший друг, так что привыкайте - мы все проводим там гораздо больше времени, чем в редакторе кода!