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

时间:2016-01-23 07:16:09

标签: c# .net arrays if-statement installer

使用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语句中创建的。请告诉我我做错了什么。

2 个答案:

答案 0 :(得分:2)

在运行循环之前,您需要创建一次数组。数组的问题在于没有简单的方法来改变数组的大小,并且您事先并不知道每个数组中有多少条记录。所以我建议使用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.
}

答案 1 :(得分:0)

您需要使用通用列表而不是数组,并且需要在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);
            }
        }