我如何检查用户输入值从控制台对数组元素?c#

本文关键字:控制台 数组元素 输入 用户 何检查 检查 | 更新日期: 2023-09-27 18:09:01

我使用文本文件读取单位转换并将其存储在array中。

我计划获取他们想要转换的每个测量的用户输入,并将它们与array中的element进行比较,以便我可以引用它们以输入有效的输入。

数组中的数据使用(",")

进行分割

数组中的数据以这种格式组织。如。"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?
    }
}

任何帮助都会很感激。谢谢!编辑:肿块

我如何检查用户输入值从控制台对数组元素?c#

使用try catch

你可以修改它以得到更好的输出错误,如:File is incorrect at line number:

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。查找方法

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