编译器在编译期间跳过foreach()循环
本文关键字:foreach 循环 编译 编译器 | 更新日期: 2023-09-27 18:08:51
我创建了一个通过telnet配置网络设备的方法。问题是我有多个值,我正在使用foreach()
循环配置,但编译器正在跳过该循环。我使用c# WPF和模式是MVVM。下面是我的代码:
public ObservableCollection<VLANSPropertyClass> vlan { get; set; }
public bool VLAN()
{
vlan = new ObservableCollection<VLANSPropertyClass>();
string _command;
_command = "config t 'n";
WriteAPCommand(_command);
ReadAPCommand();
foreach(VLANSPropertyClass v in vlan)
{
Console.WriteLine("-----------------FOREACH STARTED----------------");
_command = "vlan " + v.vid + "'n";
WriteAPCommand(_command);
ReadAPCommand();
_command = "name " + v.vname + "'n";
WriteAPCommand(_command);
ReadAPCommand();
_command = "interface " + v.vid + "'n";
WriteAPCommand(_command);
ReadAPCommand();
_command = "ip address " + v.ip + " " + v.mask + "'n";
WriteAPCommand(_command);
ReadAPCommand();
_command="exit'r";
WriteAPCommand(_command);
ReadAPCommand();
_command = "interface " + v.vports + "'n";
WriteAPCommand(_command);
ReadAPCommand();
_command = "switchport access " + v.vid + "'n";
WriteAPCommand(_command);
ReadAPCommand();
_command = "copy runningconfig startupconfig'n";
WriteAPCommand(_command);
ReadAPCommand();
}
Console.WriteLine("-----------------FOREACH COMPLETED----------------");
return true;
}
vlan属性类是:
public class VLANSPropertyClass
{
public string vname { get; set; }
public int S_No { get; set; }
public string vid { get; set; }
public string ip { get; set; }
public string mask { get; set; }
public string vports { get; set; }
}
bool Vlan()函数存在于Model
中,它是从ViewModel
调用的。谁能告诉我为什么我的代码不能正确执行?
您正在创建一个新的ObservableCollection<VLANSPropertyClass>()
,但它是空的。因此,当你对它进行迭代时,你永远不会在循环体中结束。在对集合进行迭代之前,需要在某个地方填充。(有可能你期望ReadAPCommand
填充它,但你还没有告诉我们任何关于这一点。)
想想你希望数据从哪里来,以及你希望它如何进入你的集合。
你还应该仔细考虑你的属性和方法名——目前它们都没有遵循正常的。net约定,而且你的VLAN
方法根本没有描述做意味着什么。