C# 如何根据命令行中的列表框选择执行单独的脚本?

C# 如何根据命令行中的列表框选择执行单独的脚本?,c#,visual-studio,command-line,command-line-arguments,C#,Visual Studio,Command Line,Command Line Arguments,我在网上搜索过这个,但似乎找不到我要找的东西。我确信这是因为我不知道术语(对不起,我不是最擅长编码的) 我想在命令行应用程序中列出用户可以单独选择的项目。当他们选择一个项目(在我的例子中是一个站点)时,我希望能够为所选站点执行本地存储的特定脚本。我试图用一个示例pdf来执行Process.Start行,但我希望能够根据用户选择的列表中所选的项目来执行特定的文件。以下是我目前的代码: using System; using System.Collections.Generic; using Sys

我在网上搜索过这个,但似乎找不到我要找的东西。我确信这是因为我不知道术语(对不起,我不是最擅长编码的)

我想在命令行应用程序中列出用户可以单独选择的项目。当他们选择一个项目(在我的例子中是一个站点)时,我希望能够为所选站点执行本地存储的特定脚本。我试图用一个示例pdf来执行Process.Start行,但我希望能够根据用户选择的列表中所选的项目来执行特定的文件。以下是我目前的代码:

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ListBoxConsole
{
    class ConsoleListBox
    {
        static void Main()
        {
            Console.TreatControlCAsInput = false;
            Console.CancelKeyPress += new ConsoleCancelEventHandler(BreakHandler);
            Console.Clear();
            Console.CursorVisible = false;
            Console.Title = "List Box Items";

            string[] sites = { "site1", "site2", "site3", "site4", "site5" };

            WriteColorString("Choose Site using down and up arrow keys and press enter", 23, 20, ConsoleColor.Black, ConsoleColor.White);

            int choice = ChooseListBoxItem(sites, 34, 3, ConsoleColor.DarkGreen, ConsoleColor.White);
            // do something with choice
            WriteColorString("You chose " + sites[choice - 1] + ".", 25, 22, ConsoleColor.Black, ConsoleColor.White);
            Process.Start(@"C:\Users\Downloads\insp.pdf");
            WriteColorString(" Press any key to exit", 27, 24, ConsoleColor.Black, ConsoleColor.White);
            Console.ReadKey();
            CleanUp();
        }
任何帮助或指导都将不胜感激

谢谢。

一个if语句

if(sites[choice - 1] == choice1)
{
     Process.Start(@"C:\Users\Downloads\insp1.pdf");
}
else if(sites[choice - 1] == choice2)
{
     Process.Start(@"C:\Users\Downloads\insp2.pdf");
}

使用类来描述对象。这是面向对象编程的核心:

class MySite
{
  public string Name;
  public string Path;
}
然后,对于您的特定情况,您可以这样做:

List<MySite> mySites = new List<MySite>();
mySites.Add(new MySite() { Name = "site1", Path = @"c:\a.pdf" });
mySites.Add(new MySite() { Name = "site2", Path = @"c:\b.pdf" });
mySites.Add(new MySite() { Name = "site3", Path = @"C:\c.pdf" });

int choice = ChooseListBoxItem(mySites.Select(s=>s.Name).ToArray(), 34, 3,
    ConsoleColor.DarkGreen, ConsoleColor.White);

WriteColorString("You chose " + mySites[choice - 1].Name + ".", 25, 22, 
    ConsoleColor.Black, ConsoleColor.White);
Process.Start(mySites[choice - 1].Path);
List mySites=new List();
添加(新的MySite(){Name=“site1”,Path=@“c:\a.pdf”});
添加(新的MySite(){Name=“site2”,Path=@“c:\b.pdf”});
添加(新的MySite(){Name=“site3”,Path=@“C:\C.pdf”});
int choice=ChooseListBoxItem(mySites.Select(s=>s.Name).ToArray(),34,3,
ConsoleColor.DarkGreen,ConsoleColor.White);
WriteColorString(“您选择了”+mysite[choice-1]。Name+”,25,22,
控制台颜色。黑色,控制台颜色。白色);
Process.Start(mySites[choice-1].Path);

@KenWhite对不起,Ken,我已经编辑了这篇文章。谢谢