创建一个字符串数组,以便稍后在 C# 中调用

本文关键字:调用 一个 数组 字符串 创建 | 更新日期: 2023-09-27 18:31:42

在 C# 中创建远程安装程序应用程序。首先,我正在执行ping检查以确保计算机在运行安装之前处于活动状态。我稍后将实施服务检查。

我需要创建一个字符串数组,该数组将基于ping状态是成功(goodPing)和失败(badPing),因此我可以在另一个运行安装的foreach循环中使用它。

foreach (string singleComputer in computerArray)
        {
            // Ping all computers
            Ping ping = new Ping();
            PingReply pingresult = ping.Send(singleComputer);
            if (pingresult.Status.ToString() == "Success")
            {
               string[] goodPing = new string[] {"singleComputer"};
            }
            else if (pingresult.Status.ToString() != "Success")
            {
               string[] badPing = new string[] {"singleComputer"};
            }
        }

基本上,我确保计算机是可ping的,将"好"和"坏"计算机分开。 computerArray 是从文件创建的字符串数组。

这就是我希望它在创建数组后的样子:

foreach (string computer in goodPing)
{
     //run installation code here.
}

显然,我不能调用goodPing,因为它是在if语句中创建的。请启发我,我做错了什么。

创建一个字符串数组,以便稍后在 C# 中调用

在运行循环之前,您需要创建一次数组。数组的问题在于没有简单的方法来更改数组的大小,并且您事先不知道每个数组中将有多少条记录。所以我建议使用 List<T> 而不是数组:

List<string> goodPing = new List<string>();
List<string> badPing = new List<string>();
Ping ping = new Ping();
foreach (string singleComputer in computerArray)
{
    // Ping all computers
    PingReply pingresult = ping.Send(singleComputer);
    if (pingresult.Status.ToString() == "Success")
    {
         goodPing.Add(singleComputer);
    }
    else if (pingresult.Status.ToString() != "Success")
    {
         badPing.Add(singleComputer);
    }
}

现在,您可以使用良好的ping列表来执行您需要执行的操作:

foreach (string computer in goodPing)
{
     //run installation code here.
}

您需要使用泛型列表而不是数组,并且需要在 for 循环之前声明它们,以便在循环之后可以访问它们。

List<string> goodPings = new List<string>();
List<string> badPings = new List<string>();
foreach (string singleComputer in computerArray)
        {
            // Ping all computers
            Ping ping = new Ping();
            PingReply pingresult = ping.Send(singleComputer);
            if (pingresult.Status.ToString() == "Success")
            {
               goodPings.Add(singleComputer); // and don't forget to use the variable singleComputer here, not the literal string "singleComputer".
            }
            else if (pingresult.Status.ToString() != "Success")
            {
               badPings.Add(singleComputer);
            }
        }