处理多个选项 C# 的数据的最佳方法
本文关键字:数据 方法 最佳 选项 处理 | 更新日期: 2023-09-27 18:31:16
我的程序工作流程:
1) 显示菜单
2) 通过开关捕获选项
2.1)将浮点数添加到列表
2.2)增量 int1
2.3)增量 int2
2.4)显示输入
现在我想添加一个生成器,它将在控制台中打印我的光纤轨道的外观。例如:
1)增加了一段20公里长的路段
2) 在最新部分添加了焊缝
3) 增加了一个再生器
4) 新增连接器
5)增加了10公里长的路段
我想进入我的控制台:
这是您的曲目的外观: [发射器]-> [--20公里轨道--
] -> [焊接] -> [再生器] -> [连接器]> -> [--10公里轨道--]
第一个问题是我应该创建什么样的列表来处理我的轨道设计?我只制作一个整数列表,并制作一种编码方法,将例如 1 转换为连接器等焊缝 3 的第 2 部分。
任何建议都会很好!感谢您的时间和耐心。
public class Program
{
public int WeldCount;
public int ConnectroCount;
public List<float> section = new List<float>();
//public List<> TrackElements = new List<>();
public Program()
{
section.Add(0);
}
public void showResults()
{
float allSections = 0;
foreach (float item in section)
{
allSections += item;
}
Console.Clear();
Console.WriteLine("Weld count: {0}, connector count: {1}, sum of sections: {2}", WeldCount,ConnectroCount,allSections);
Console.ReadKey();
}
public void finalConstruction()
{
}
public static void mainMenu()
{
Console.Clear();
Console.WriteLine("'n");
Console.WriteLine("Add: 'n1. Section 'n2. Weld 'n3. Regenerator'n4. Show results");
}
public void menuChoose()
{
var key = Console.ReadKey();
switch (key.Key)
{
case ConsoleKey.D1:
case ConsoleKey.NumPad1:
Console.Clear();
Console.WriteLine("Give lenght:");
float result;
float.TryParse(Console.ReadLine(), out result);
section.Add(result);
mainMenu();
menuChoose();
break;
case ConsoleKey.D2:
WeldCount++;
mainMenu();
menuChoose();
break;
case ConsoleKey.D3:
ConnectroCount++;
mainMenu();
menuChoose();
break;
case ConsoleKey.D4:
showResults();
mainMenu();
menuChoose();
break;
default:
Console.WriteLine("Coś ty odjebał");
break;
}
}
static void Main(string[] args)
{
Program program = new Program();
mainMenu();
program.menuChoose();
}
}
创建一个List<string>
。这样,您可以添加变送器,焊机和轨道,然后打印它。
如果您熟悉使用类,我会从创建一个 Track 类开始。拥有浮点数列表的问题在于,您无法确定它们的输入顺序,那么如何将特定长度映射到特定轨道?
这就是您的跟踪类可以非常简单:
public class Track
{
public string Name;
public float Length;
}
在主菜单中,您可以通过说以下内容添加新曲目:
Track t = new Track();
t.Name = "Welding";
t.Length = 4.5f;
trackElements.Add(t);
只需像这样显示它:
public void showResults()
{
foreach(Track item in trackElements)
{
Console.WriteLine(item.Name + ": " + item.Length);
}
Console.WriteLine("Number of sections: " + trackElements.Count());
Console.ReadKey();
}