簡體   English   中英

如何從控制台對照數組元素檢查用戶輸入值? C#

[英]How do I check a users input value from the console against an array element? c#

我已經閱讀了使用文本文件的單位轉換並將其存儲在array

我計划獲取他們想要轉換的每個度量的用戶輸入,並將它們與arrayelement進行比較,以便我可以引用它們以輸入有效的輸入。

使用(",")拆分數組中的數據

數組中的數據以這種格式組織。 例如“盎司,克,28.0”

如何檢查用戶是否輸入了密碼輸入? 例如,他們把盎司放在不是品脫之類的另一種不兼容的度量標准上。

到目前為止,這是我所做的事情

    class Program
{
    static void Main(string[] args)
    {
        Program myProgram = new Program();//call for program to start 
        myProgram.RunProgram();

    }
    public string inputA;
    PUBLIC STRING InputB;
    public decimal inputC;
    string[] finalArray;

    public class Conversion
    {
        public string measurementA { set; get; }
        public string measurementB { set; get; }
        public decimal converFac { set; get; }

    }
    public void RunProgram()
    {
        Console.WriteLine("Welcome to to our Conversion Calculator");
        ReadFile();//read in text file
        GetInput();//get the user input
        //Validation();//validate it according to the data in the text file, redirect to getInput is not validated correctly
        //Display();//display the result accordingly if validated correctly
        //ReDo();//offer a restart or an exit to the program
    }

    public void ReadFile()
    {

        List<Conversion> Convert = new List<Conversion>();
        using (StreamReader sr = new StreamReader(@"U:\convert.txt"))
        {
            while (sr.Peek() >= 0)
            {
                string str;
                string[] srArray;
                str = sr.ReadLine();

                srArray = str.Split(',');
                Conversion currentConversion = new Conversion();
                currentConversion.measurementA = srArray[0];
                currentConversion.measurementB = srArray[1];
                currentConversion.converFac = decimal.Parse(srArray[2]);
                finalArray = (string[])srArray.Clone();

            }


        }
    }
    public void GetInput()
    {
        Console.Write("Please enter your first unit of Measurement.");
        inputA = Convert.ToString(Console.ReadLine());
        //what do I put her to make sure that it corresponds with one of the measurementA elements in the array?

    }

}

任何幫助,將不勝感激。 謝謝! 編輯:凹凸

使用try catch

您可以修改它以提供更好的輸出錯誤,例如:文件在行號不正確:

public List<Conversion> ReadFile()
    {

        List<Conversion> Convert = new List<Conversion>();
        using (StreamReader sr = new StreamReader(@"U:\convert.txt"))
        {
            while (sr.Peek() >= 0)
            {
                string str;
                string[] srArray;
                str = sr.ReadLine();

                srArray = str.Split(',');
                Conversion currentConversion = new Conversion();
                currentConversion.measurementA = srArray[0];
                currentConversion.measurementB = srArray[1];
                try{
                currentConversion.converFac = decimal.Parse(srArray[2]);
                    }
                catch(Exception ex){
                Console.WriteLine("File is not in correct format");
                break;
                }
                Convert.Add(currentConversion);

            }


        }
   return Convert;
    }

要比較數組中的度量單位,請使用Array.Find方法,如下所示

static void Main()
{
   string[] array1 = { "kgs", "pounds"};
   string value1 = Array.Find(array1,element => element=="kgs");
   Console.WriteLine(value1);
   Console.ReadKey();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM