我已阅读使用文本文件的单位转换并将其存储在array
。
我计划让用户输入他们想要转化的每个衡量标准,并将它们与element
中的array
进行比较,以便我可以引用它们来输入有效的输入。
使用(",")
数组中的数据以此格式组织。例如“盎司,克,28.0”
如何检查用户是否输入了vald输入?例如,他们把盎司放在盎司不是另一种不兼容的测量,如品脱。
这是我到目前为止所做的事情
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?
}
}
任何帮助将不胜感激。谢谢! 编辑:凹凸
答案 0 :(得分:0)
使用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;
}
答案 1 :(得分:0)
要比较数组中的测量单位,请使用Array.Find方法,如下所示
static void Main()
{
string[] array1 = { "kgs", "pounds"};
string value1 = Array.Find(array1,element => element=="kgs");
Console.WriteLine(value1);
Console.ReadKey();
}