创建一个字符串数组,以便稍后在 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语句中创建的。请启发我,我做错了什么。
在运行循环之前,您需要创建一次数组。数组的问题在于没有简单的方法来更改数组的大小,并且您事先不知道每个数组中将有多少条记录。所以我建议使用 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);
}
}