///遍历森林查找一个节点
public static Region GetRegion(Region[] regions, string regionCode)
{
if (regions != null && regions.Length>0) //深度不为0
{
foreach (Region region in regions) //遍历森林的根节点
{
if (region.Code == regionCode) //当前节点相等
{
return region; //返回当前节点
}
else
{
if (region.SubRegion != null && region.SubRegion.Length > 0) //包含子节点
{
Region r= GetRegion(region.SubRegion, regionCode); //遍历当前节点的子节点
if (r != null) //如果从子节点找到
{
return r; //返回节点
}
}
}
}
//遍历结束没找到,则返回空。
return null;
}
else
{
//深度为0,返回空
return null;
}
}
// Region 类型。
public class Region
{
private string nameField;
private string codeField;
private Region[] subRegionField;
/// <remarks/>
public string Name
{
get {
return this.nameField;
}
set {
this.nameField = value;
}
}
/// <remarks/>
public string Code
{
get {
return this.codeField;
}
set {
this.codeField = value;
}
}
public Region[] SubRegion {
get {
return this.subRegionField;
}
set {
this.subRegionField = value;
}
}
}
public static Region GetRegion(Region[] regions, string regionCode)
{
if (regions != null && regions.Length>0) //深度不为0
{
foreach (Region region in regions) //遍历森林的根节点
{
if (region.Code == regionCode) //当前节点相等
{
return region; //返回当前节点
}
else
{
if (region.SubRegion != null && region.SubRegion.Length > 0) //包含子节点
{
Region r= GetRegion(region.SubRegion, regionCode); //遍历当前节点的子节点
if (r != null) //如果从子节点找到
{
return r; //返回节点
}
}
}
}
//遍历结束没找到,则返回空。
return null;
}
else
{
//深度为0,返回空
return null;
}
}
// Region 类型。
public class Region
{
private string nameField;
private string codeField;
private Region[] subRegionField;
/// <remarks/>
public string Name
{
get {
return this.nameField;
}
set {
this.nameField = value;
}
}
/// <remarks/>
public string Code
{
get {
return this.codeField;
}
set {
this.codeField = value;
}
}
public Region[] SubRegion {
get {
return this.subRegionField;
}
set {
this.subRegionField = value;
}
}
}