全国县及县以上行政区划代码信息类(C#.Net)
来源:互联网 发布:关于基础编程的书 编辑:程序博客网 时间:2024/05/04 13:05
根据 水如烟的vb代码转换过来的C#代码 感谢水如烟..
/**//// -----------------------------------------------------------------------------
/// Project : LzmTW.Common
/// Class : Common.RegionalCodeClass.RegionalCompare
///
/// -----------------------------------------------------------------------------
/// <summary>
/// 按区划的代码排序
/// </summary>
/// <remarks>
/// </remarks>
/// <history>
/// [lzmtw] 2005-10-24 Created
/// </history>
/// -----------------------------------------------------------------------------
private class RegionalCompare : System.Collections.IComparer
...{
public int System.Collections.IComparer.Compare(object x, object y)
...{
return ((Regional)x).Code.CompareTo(((Regional)y).Code);
}
}
/// Project : LzmTW.Common
/// Class : Common.RegionalCodeClass.RegionalCompare
///
/// -----------------------------------------------------------------------------
/// <summary>
/// 按区划的代码排序
/// </summary>
/// <remarks>
/// </remarks>
/// <history>
/// [lzmtw] 2005-10-24 Created
/// </history>
/// -----------------------------------------------------------------------------
private class RegionalCompare : System.Collections.IComparer
...{
public int System.Collections.IComparer.Compare(object x, object y)
...{
return ((Regional)x).Code.CompareTo(((Regional)y).Code);
}
}
public class RegionalCodeClassClass
...{
private RegionalCollection _Collection;
private System.Collections.IDictionaryEnumerator _Enumerator;
//默认数据文件
private string _TxtFile = System.AppDomain.CurrentDomain.BaseDirectory + "/全国行政区划代码.txt";
private string _XmlFile = System.AppDomain.CurrentDomain.BaseDirectory + "/全国行政区划代码.xml";
public RegionalCodeClassClass()
...{
_Collection = new RegionalCollection();
}
"对外属性"#region "对外属性"
/**//// -----------------------------------------------------------------------------
/// <summary>
/// 区划信息
/// </summary>
/// <param name="iCode">代码</param>
/// <value>区划</value>
/// <remarks>
/// </remarks>
/// <history>
/// [lzmtw] 2005-10-24 Created
/// </history>
/// -----------------------------------------------------------------------------
public Regional Item ...{
get ...{ return _Collection.Item(iCode); }
}
/**//// -----------------------------------------------------------------------------
/// <summary>
/// 区划集
/// </summary>
/// <value>区划</value>
/// <remarks>
/// </remarks>
/// <history>
/// [lzmtw] 2005-10-24 Created
/// </history>
/// -----------------------------------------------------------------------------
public Regional[] Items ...{
get ...{
Regional[] tmp = new Regional[_Collection.Count];
int n = 0;
_Enumerator = _Collection.GetEnumerator;
...{
while (_Enumerator.MoveNext) ...{
tmp(n) = (Regional)_Enumerator.Value;
n += 1;
}
}
return tmp;
}
}
#endregion
"装入数据方式"#region "装入数据方式"
/**//// -----------------------------------------------------------------------------
/// <summary>
/// 从文本文件导入数据
/// </summary>
/// <remarks>
/// 默认文件为程序运行目录下的"全国行政区划代码.txt"
/// </remarks>
/// <history>
/// [lzmtw] 2005-10-24 Created
/// </history>
/// -----------------------------------------------------------------------------
public void LoadFromTxt()
...{
if (!System.IO.File.Exists(_TxtFile)) ...{
Interaction.MsgBox("文件不存在!");
return; // TODO: might not be correct. Was : Exit Sub
}
this.Load_BeforBegin();
IO.FileStream fs = new IO.FileStream(_TxtFile, IO.FileMode.Open);
IO.StreamReader sr = new IO.StreamReader(fs, System.Text.Encoding.Default);
string Line;
string tmpCode;
string tmpName;
while (sr.Peek != -1) ...{
Line = sr.ReadLine.Trim;
//除去前后空格
if (Line.Length > 6) ...{
tmpCode = Line.Substring(0, 6);
tmpName = Line.Substring(6);
Add(tmpCode, tmpName);
}
}
sr.Close();
fs.Close();
this.Load_AfterDataFinish();
}
/**//// -----------------------------------------------------------------------------
/// <summary>
/// 从文本文件导入数据
/// </summary>
/// <param name="FileName">文件名</param>
/// <remarks>
/// </remarks>
/// <history>
/// [lzmtw] 2005-10-24 Created
/// </history>
/// -----------------------------------------------------------------------------
public void LoadFromTxt(string FileName)
...{
_TxtFile = FileName;
LoadFromTxt();
}
/**//// -----------------------------------------------------------------------------
/// <summary>
/// 从DataTable导入数据
/// </summary>
/// <param name="Table">DataTable</param>
/// <remarks>
/// </remarks>
/// <history>
/// [lzmtw] 2005-10-24 Created
/// </history>
/// -----------------------------------------------------------------------------
public void LoadFromTable(DataTable Table)
...{
if (Table == null || Table.Rows.Count == 0) ...{
Interaction.MsgBox("没数据!");
return; // TODO: might not be correct. Was : Exit Sub
}
this.Load_BeforBegin();
string tmpCode;
string tmpName;
foreach (DataRow row in Table.Rows) ...{
tmpCode = row.Item(0);
tmpName = row.Item(1);
Add(tmpCode, tmpName);
}
this.Load_AfterDataFinish();
}
/**//// -----------------------------------------------------------------------------
/// <summary>
/// 从xml文件导入数据
/// </summary>
/// <remarks>
/// 默认文件为程序运行目录下的"全国行政区划代码.xml"
/// </remarks>
/// <history>
/// [lzmtw] 2005-10-24 Created
/// </history>
/// -----------------------------------------------------------------------------
public void LoadFromXml()
...{
if (!System.IO.File.Exists(_XmlFile)) ...{
Interaction.MsgBox("文件不存在!");
return; // TODO: might not be correct. Was : Exit Sub
}
DataSet tmpDataSet = new DataSet();
tmpDataSet.ReadXml(_XmlFile);
if (tmpDataSet.Tables.Count == 0 || tmpDataSet.Tables(0).Rows.Count == 0) ...{
Interaction.MsgBox("没有数据,或文件不符!");
return; // TODO: might not be correct. Was : Exit Sub
}
this.LoadFromTable(tmpDataSet.Tables(0));
tmpDataSet.Clear();
tmpDataSet.Dispose();
}
/**//// -----------------------------------------------------------------------------
/// <summary>
/// 从xml文件导入数据
/// </summary>
/// <param name="FileName">文件名</param>
/// <remarks>
/// </remarks>
/// <history>
/// [lzmtw] 2005-10-24 Created
/// </history>
/// -----------------------------------------------------------------------------
public void LoadFromXml(string FileName)
...{
_XmlFile = FileName;
LoadFromXml();
}
private void Add(string iCode, string iName)
...{
iCode = iCode.Trim;
iName = iName.Trim;
if (iCode.Length == 6 && Microsoft.VisualBasic.IsNumeric(iCode)) ...{
//保证是六位数字
Regional tmp = new Regional(iCode, iName);
_Collection.Add(tmp);
}
}
//装入数据前的处理
private void Load_BeforBegin()
...{
_Collection.Clear();
}
//装入数据后的处理
private void Load_AfterDataFinish()
...{
Regional[] tmp = this.Items;
this.Sort(tmp);
foreach (Regional o in tmp) ...{
this.IniRegionalFullName(o);
}
}
//取全名
private void IniRegionalFullName(Regional iRegional)
...{
string iCode;
iCode = iRegional.Code;
Regional tmp1;
Regional tmp2;
switch (Convert.ToInt16(iCode.Substring(2, 2))) ...{
//中组
case 0:
//XX00XX
switch (Convert.ToInt16(iCode.Substring(4, 2))) ...{
//尾组
case 0:
//XX0000
iRegional.FullName = iRegional.Name;
break;
default:
//XX00--
break;
//未定义
}
break;
default:
//XX--XX
switch (Convert.ToInt16(iCode.Substring(4, 2))) ...{
//尾组
case 0:
//XX--00
tmp1 = this.Item(iCode.Substring(0, 2) + "0000");
if ((tmp1 != null))
iRegional.FullName = tmp1.Name + iRegional.Name;
break;
default:
//XX----
tmp1 = this.Item(iCode.Substring(0, 2) + "0000");
if ((tmp1 != null)) ...{
tmp2 = this.Item(iCode.Substring(0, 4) + "00");
if ((tmp2 != null)) ...{
if (tmp1.Name.EndsWith("市")) ...{
iRegional.FullName = tmp1.Name + iRegional.Name;
}
else ...{
iRegional.FullName = tmp2.FullName + iRegional.Name;
}
}
}
break;
}
break;
}
}
#endregion
"导出数据方式"#region "导出数据方式"
/**//// -----------------------------------------------------------------------------
/// <summary>
/// 导出到xml文件
/// </summary>
/// <remarks>
/// 默认文件为程序运行目录下的"全国行政区划代码.xml"
/// </remarks>
/// <history>
/// [lzmtw] 2005-10-24 Created
/// </history>
/// -----------------------------------------------------------------------------
public void WriteXml()
...{
if (_Collection.Count == 0) ...{
Interaction.MsgBox("没有数据!");
return; // TODO: might not be correct. Was : Exit Sub
}
DataSet tmpDataSet = new DataSet();
DataTable Table = new DataTable();
Table.Columns.AddRange(new DataColumn[] ...{new DataColumn("Code"), new DataColumn("Name")});
WriteTable(Table);
tmpDataSet.Tables.Add(Table);
try ...{
tmpDataSet.WriteXml(_XmlFile);
}
catch (Exception ex) ...{
Interaction.MsgBox(ex.Message);
}
Table.Clear();
Table.Dispose();
tmpDataSet.Clear();
tmpDataSet.Dispose();
}
/**//// -----------------------------------------------------------------------------
/// <summary>
/// 导出到xml文件
/// </summary>
/// <param name="FileName">文件名</param>
/// <remarks>
/// </remarks>
/// <history>
/// [lzmtw] 2005-10-24 Created
/// </history>
/// -----------------------------------------------------------------------------
public void WriteXml(string FileName)
...{
_XmlFile = FileName;
WriteXml();
}
/**//// -----------------------------------------------------------------------------
/// <summary>
/// 导出到DataTable
/// </summary>
/// <param name="Table">DataTable</param>
/// <remarks>
/// </remarks>
/// <history>
/// [lzmtw] 2005-10-24 Created
/// </history>
/// -----------------------------------------------------------------------------
public void WriteTable(DataTable Table)
...{
if (_Collection.Count == 0) ...{
Interaction.MsgBox("没有数据!");
return; // TODO: might not be correct. Was : Exit Sub
}
Table.Clear();
Sort(this.Items);
...{
Table.BeginInit();
foreach (Regional r in this.Items) ...{
Table.Rows.Add(new string[] ...{r.Code, r.Name});
}
//不作AcceptChanges处理,便于上载到数据库
Table.EndInit();
}
}
#endregion
"排序方式"#region "排序方式"
/**//// -----------------------------------------------------------------------------
/// <summary>
/// 排序
/// </summary>
/// <param name="Array">区划集</param>
/// <remarks>
/// </remarks>
/// <history>
/// [lzmtw] 2005-10-24 Created
/// </history>
/// -----------------------------------------------------------------------------
public void Sort(Regional[] Array)
...{
if (Array == null || Array.Length == 0)
return; // TODO: might not be correct. Was : Exit Sub
System.Array.Sort(Array, new RegionalCompare());
}
/**//// -----------------------------------------------------------------------------
/// <summary>
/// 逆序
/// </summary>
/// <param name="Array">区划集</param>
/// <remarks>
/// </remarks>
/// <history>
/// [lzmtw] 2005-10-24 Created
/// </history>
/// -----------------------------------------------------------------------------
public void Reverse(Regional[] Array)
...{
if (Array == null || Array.Length == 0)
return; // TODO: might not be correct. Was : Exit Sub
System.Array.Reverse(Array);
}
#endregion
"查找方式"#region "查找方式"
Regional[] sNowItems;
Regional[] sTmpRegion;
int sCount;
private void Search_Begin()
...{
// ERROR: Not supported in C#: ReDimStatement
sCount = 0;
snowitems = this.Items;
this.Sort(sNowItems);
}
private void Search_Add(Regional sRegional)
...{
// ERROR: Not supported in C#: ReDimStatement
sTmpRegion(sCount) = sRegional;
sCount += 1;
}
private void Search_Way(string Value, string Way)
...{
foreach (Regional o in sNowItems) ...{
switch (Way) ...{
case "Code":
if (o.Code // ERROR: Unknown binary operator Like ) {
Search_Add(o);
}
break;
case "Name":
if (o.Name // ERROR: Unknown binary operator Like ) {
Search_Add(o);
}
break;
case "Kind":
if (o.Kind.ToString // ERROR: Unknown binary operator Like ) {
Search_Add(o);
}
break;
default:
break;
}
}
}
private void Search_Way(Regional.KindType Value)
...{
foreach (Regional o in sNowItems) ...{
if (o.Kind.Equals(Value)) ...{
Search_Add(o);
}
}
}
/**//// -----------------------------------------------------------------------------
/// <summary>
/// 按代码查询
/// </summary>
/// <param name="iCode">代码</param>
/// <returns>区划集</returns>
/// <remarks>
/// </remarks>
/// <history>
/// [lzmtw] 2005-10-24 Created
/// </history>
/// -----------------------------------------------------------------------------
public Regional[] SearchByCode(string iCode)
...{
Search_Begin();
Search_Way(iCode, "Code");
return sTmpRegion;
}
/**//// -----------------------------------------------------------------------------
/// <summary>
/// 按名称查询
/// </summary>
/// <param name="iName">名称</param>
/// <returns>区划集</returns>
/// <remarks>
/// </remarks>
/// <history>
/// [lzmtw] 2005-10-24 Created
/// </history>
/// -----------------------------------------------------------------------------
public Regional[] SearchByName(string iName)
...{
Search_Begin();
Search_Way(iName, "Name");
return sTmpRegion;
}
/**//// -----------------------------------------------------------------------------
/// <summary>
/// 按类型查询
/// </summary>
/// <param name="iKind">类型</param>
/// <returns>区划集</returns>
/// <remarks>
/// </remarks>
/// <history>
/// [lzmtw] 2005-10-24 Created
/// </history>
/// -----------------------------------------------------------------------------
public Regional[] SearchByKind(string iKind)
...{
Search_Begin();
Search_Way(iKind, "Kind");
return sTmpRegion;
}
/**//// -----------------------------------------------------------------------------
/// <summary>
/// 按类型查询
/// </summary>
/// <param name="iKind">类型</param>
/// <returns>区划集</returns>
/// <remarks>
/// </remarks>
/// <history>
/// [lzmtw] 2005-10-24 Created
/// </history>
/// -----------------------------------------------------------------------------
public Regional[] SearchByKind(Regional.KindType iKind)
...{
Search_Begin();
Search_Way(iKind);
return sTmpRegion;
}
#endregion
}
...{
private RegionalCollection _Collection;
private System.Collections.IDictionaryEnumerator _Enumerator;
//默认数据文件
private string _TxtFile = System.AppDomain.CurrentDomain.BaseDirectory + "/全国行政区划代码.txt";
private string _XmlFile = System.AppDomain.CurrentDomain.BaseDirectory + "/全国行政区划代码.xml";
public RegionalCodeClassClass()
...{
_Collection = new RegionalCollection();
}
"对外属性"#region "对外属性"
/**//// -----------------------------------------------------------------------------
/// <summary>
/// 区划信息
/// </summary>
/// <param name="iCode">代码</param>
/// <value>区划</value>
/// <remarks>
/// </remarks>
/// <history>
/// [lzmtw] 2005-10-24 Created
/// </history>
/// -----------------------------------------------------------------------------
public Regional Item ...{
get ...{ return _Collection.Item(iCode); }
}
/**//// -----------------------------------------------------------------------------
/// <summary>
/// 区划集
/// </summary>
/// <value>区划</value>
/// <remarks>
/// </remarks>
/// <history>
/// [lzmtw] 2005-10-24 Created
/// </history>
/// -----------------------------------------------------------------------------
public Regional[] Items ...{
get ...{
Regional[] tmp = new Regional[_Collection.Count];
int n = 0;
_Enumerator = _Collection.GetEnumerator;
...{
while (_Enumerator.MoveNext) ...{
tmp(n) = (Regional)_Enumerator.Value;
n += 1;
}
}
return tmp;
}
}
#endregion
"装入数据方式"#region "装入数据方式"
/**//// -----------------------------------------------------------------------------
/// <summary>
/// 从文本文件导入数据
/// </summary>
/// <remarks>
/// 默认文件为程序运行目录下的"全国行政区划代码.txt"
/// </remarks>
/// <history>
/// [lzmtw] 2005-10-24 Created
/// </history>
/// -----------------------------------------------------------------------------
public void LoadFromTxt()
...{
if (!System.IO.File.Exists(_TxtFile)) ...{
Interaction.MsgBox("文件不存在!");
return; // TODO: might not be correct. Was : Exit Sub
}
this.Load_BeforBegin();
IO.FileStream fs = new IO.FileStream(_TxtFile, IO.FileMode.Open);
IO.StreamReader sr = new IO.StreamReader(fs, System.Text.Encoding.Default);
string Line;
string tmpCode;
string tmpName;
while (sr.Peek != -1) ...{
Line = sr.ReadLine.Trim;
//除去前后空格
if (Line.Length > 6) ...{
tmpCode = Line.Substring(0, 6);
tmpName = Line.Substring(6);
Add(tmpCode, tmpName);
}
}
sr.Close();
fs.Close();
this.Load_AfterDataFinish();
}
/**//// -----------------------------------------------------------------------------
/// <summary>
/// 从文本文件导入数据
/// </summary>
/// <param name="FileName">文件名</param>
/// <remarks>
/// </remarks>
/// <history>
/// [lzmtw] 2005-10-24 Created
/// </history>
/// -----------------------------------------------------------------------------
public void LoadFromTxt(string FileName)
...{
_TxtFile = FileName;
LoadFromTxt();
}
/**//// -----------------------------------------------------------------------------
/// <summary>
/// 从DataTable导入数据
/// </summary>
/// <param name="Table">DataTable</param>
/// <remarks>
/// </remarks>
/// <history>
/// [lzmtw] 2005-10-24 Created
/// </history>
/// -----------------------------------------------------------------------------
public void LoadFromTable(DataTable Table)
...{
if (Table == null || Table.Rows.Count == 0) ...{
Interaction.MsgBox("没数据!");
return; // TODO: might not be correct. Was : Exit Sub
}
this.Load_BeforBegin();
string tmpCode;
string tmpName;
foreach (DataRow row in Table.Rows) ...{
tmpCode = row.Item(0);
tmpName = row.Item(1);
Add(tmpCode, tmpName);
}
this.Load_AfterDataFinish();
}
/**//// -----------------------------------------------------------------------------
/// <summary>
/// 从xml文件导入数据
/// </summary>
/// <remarks>
/// 默认文件为程序运行目录下的"全国行政区划代码.xml"
/// </remarks>
/// <history>
/// [lzmtw] 2005-10-24 Created
/// </history>
/// -----------------------------------------------------------------------------
public void LoadFromXml()
...{
if (!System.IO.File.Exists(_XmlFile)) ...{
Interaction.MsgBox("文件不存在!");
return; // TODO: might not be correct. Was : Exit Sub
}
DataSet tmpDataSet = new DataSet();
tmpDataSet.ReadXml(_XmlFile);
if (tmpDataSet.Tables.Count == 0 || tmpDataSet.Tables(0).Rows.Count == 0) ...{
Interaction.MsgBox("没有数据,或文件不符!");
return; // TODO: might not be correct. Was : Exit Sub
}
this.LoadFromTable(tmpDataSet.Tables(0));
tmpDataSet.Clear();
tmpDataSet.Dispose();
}
/**//// -----------------------------------------------------------------------------
/// <summary>
/// 从xml文件导入数据
/// </summary>
/// <param name="FileName">文件名</param>
/// <remarks>
/// </remarks>
/// <history>
/// [lzmtw] 2005-10-24 Created
/// </history>
/// -----------------------------------------------------------------------------
public void LoadFromXml(string FileName)
...{
_XmlFile = FileName;
LoadFromXml();
}
private void Add(string iCode, string iName)
...{
iCode = iCode.Trim;
iName = iName.Trim;
if (iCode.Length == 6 && Microsoft.VisualBasic.IsNumeric(iCode)) ...{
//保证是六位数字
Regional tmp = new Regional(iCode, iName);
_Collection.Add(tmp);
}
}
//装入数据前的处理
private void Load_BeforBegin()
...{
_Collection.Clear();
}
//装入数据后的处理
private void Load_AfterDataFinish()
...{
Regional[] tmp = this.Items;
this.Sort(tmp);
foreach (Regional o in tmp) ...{
this.IniRegionalFullName(o);
}
}
//取全名
private void IniRegionalFullName(Regional iRegional)
...{
string iCode;
iCode = iRegional.Code;
Regional tmp1;
Regional tmp2;
switch (Convert.ToInt16(iCode.Substring(2, 2))) ...{
//中组
case 0:
//XX00XX
switch (Convert.ToInt16(iCode.Substring(4, 2))) ...{
//尾组
case 0:
//XX0000
iRegional.FullName = iRegional.Name;
break;
default:
//XX00--
break;
//未定义
}
break;
default:
//XX--XX
switch (Convert.ToInt16(iCode.Substring(4, 2))) ...{
//尾组
case 0:
//XX--00
tmp1 = this.Item(iCode.Substring(0, 2) + "0000");
if ((tmp1 != null))
iRegional.FullName = tmp1.Name + iRegional.Name;
break;
default:
//XX----
tmp1 = this.Item(iCode.Substring(0, 2) + "0000");
if ((tmp1 != null)) ...{
tmp2 = this.Item(iCode.Substring(0, 4) + "00");
if ((tmp2 != null)) ...{
if (tmp1.Name.EndsWith("市")) ...{
iRegional.FullName = tmp1.Name + iRegional.Name;
}
else ...{
iRegional.FullName = tmp2.FullName + iRegional.Name;
}
}
}
break;
}
break;
}
}
#endregion
"导出数据方式"#region "导出数据方式"
/**//// -----------------------------------------------------------------------------
/// <summary>
/// 导出到xml文件
/// </summary>
/// <remarks>
/// 默认文件为程序运行目录下的"全国行政区划代码.xml"
/// </remarks>
/// <history>
/// [lzmtw] 2005-10-24 Created
/// </history>
/// -----------------------------------------------------------------------------
public void WriteXml()
...{
if (_Collection.Count == 0) ...{
Interaction.MsgBox("没有数据!");
return; // TODO: might not be correct. Was : Exit Sub
}
DataSet tmpDataSet = new DataSet();
DataTable Table = new DataTable();
Table.Columns.AddRange(new DataColumn[] ...{new DataColumn("Code"), new DataColumn("Name")});
WriteTable(Table);
tmpDataSet.Tables.Add(Table);
try ...{
tmpDataSet.WriteXml(_XmlFile);
}
catch (Exception ex) ...{
Interaction.MsgBox(ex.Message);
}
Table.Clear();
Table.Dispose();
tmpDataSet.Clear();
tmpDataSet.Dispose();
}
/**//// -----------------------------------------------------------------------------
/// <summary>
/// 导出到xml文件
/// </summary>
/// <param name="FileName">文件名</param>
/// <remarks>
/// </remarks>
/// <history>
/// [lzmtw] 2005-10-24 Created
/// </history>
/// -----------------------------------------------------------------------------
public void WriteXml(string FileName)
...{
_XmlFile = FileName;
WriteXml();
}
/**//// -----------------------------------------------------------------------------
/// <summary>
/// 导出到DataTable
/// </summary>
/// <param name="Table">DataTable</param>
/// <remarks>
/// </remarks>
/// <history>
/// [lzmtw] 2005-10-24 Created
/// </history>
/// -----------------------------------------------------------------------------
public void WriteTable(DataTable Table)
...{
if (_Collection.Count == 0) ...{
Interaction.MsgBox("没有数据!");
return; // TODO: might not be correct. Was : Exit Sub
}
Table.Clear();
Sort(this.Items);
...{
Table.BeginInit();
foreach (Regional r in this.Items) ...{
Table.Rows.Add(new string[] ...{r.Code, r.Name});
}
//不作AcceptChanges处理,便于上载到数据库
Table.EndInit();
}
}
#endregion
"排序方式"#region "排序方式"
/**//// -----------------------------------------------------------------------------
/// <summary>
/// 排序
/// </summary>
/// <param name="Array">区划集</param>
/// <remarks>
/// </remarks>
/// <history>
/// [lzmtw] 2005-10-24 Created
/// </history>
/// -----------------------------------------------------------------------------
public void Sort(Regional[] Array)
...{
if (Array == null || Array.Length == 0)
return; // TODO: might not be correct. Was : Exit Sub
System.Array.Sort(Array, new RegionalCompare());
}
/**//// -----------------------------------------------------------------------------
/// <summary>
/// 逆序
/// </summary>
/// <param name="Array">区划集</param>
/// <remarks>
/// </remarks>
/// <history>
/// [lzmtw] 2005-10-24 Created
/// </history>
/// -----------------------------------------------------------------------------
public void Reverse(Regional[] Array)
...{
if (Array == null || Array.Length == 0)
return; // TODO: might not be correct. Was : Exit Sub
System.Array.Reverse(Array);
}
#endregion
"查找方式"#region "查找方式"
Regional[] sNowItems;
Regional[] sTmpRegion;
int sCount;
private void Search_Begin()
...{
// ERROR: Not supported in C#: ReDimStatement
sCount = 0;
snowitems = this.Items;
this.Sort(sNowItems);
}
private void Search_Add(Regional sRegional)
...{
// ERROR: Not supported in C#: ReDimStatement
sTmpRegion(sCount) = sRegional;
sCount += 1;
}
private void Search_Way(string Value, string Way)
...{
foreach (Regional o in sNowItems) ...{
switch (Way) ...{
case "Code":
if (o.Code // ERROR: Unknown binary operator Like ) {
Search_Add(o);
}
break;
case "Name":
if (o.Name // ERROR: Unknown binary operator Like ) {
Search_Add(o);
}
break;
case "Kind":
if (o.Kind.ToString // ERROR: Unknown binary operator Like ) {
Search_Add(o);
}
break;
default:
break;
}
}
}
private void Search_Way(Regional.KindType Value)
...{
foreach (Regional o in sNowItems) ...{
if (o.Kind.Equals(Value)) ...{
Search_Add(o);
}
}
}
/**//// -----------------------------------------------------------------------------
/// <summary>
/// 按代码查询
/// </summary>
/// <param name="iCode">代码</param>
/// <returns>区划集</returns>
/// <remarks>
/// </remarks>
/// <history>
/// [lzmtw] 2005-10-24 Created
/// </history>
/// -----------------------------------------------------------------------------
public Regional[] SearchByCode(string iCode)
...{
Search_Begin();
Search_Way(iCode, "Code");
return sTmpRegion;
}
/**//// -----------------------------------------------------------------------------
/// <summary>
/// 按名称查询
/// </summary>
/// <param name="iName">名称</param>
/// <returns>区划集</returns>
/// <remarks>
/// </remarks>
/// <history>
/// [lzmtw] 2005-10-24 Created
/// </history>
/// -----------------------------------------------------------------------------
public Regional[] SearchByName(string iName)
...{
Search_Begin();
Search_Way(iName, "Name");
return sTmpRegion;
}
/**//// -----------------------------------------------------------------------------
/// <summary>
/// 按类型查询
/// </summary>
/// <param name="iKind">类型</param>
/// <returns>区划集</returns>
/// <remarks>
/// </remarks>
/// <history>
/// [lzmtw] 2005-10-24 Created
/// </history>
/// -----------------------------------------------------------------------------
public Regional[] SearchByKind(string iKind)
...{
Search_Begin();
Search_Way(iKind, "Kind");
return sTmpRegion;
}
/**//// -----------------------------------------------------------------------------
/// <summary>
/// 按类型查询
/// </summary>
/// <param name="iKind">类型</param>
/// <returns>区划集</returns>
/// <remarks>
/// </remarks>
/// <history>
/// [lzmtw] 2005-10-24 Created
/// </history>
/// -----------------------------------------------------------------------------
public Regional[] SearchByKind(Regional.KindType iKind)
...{
Search_Begin();
Search_Way(iKind);
return sTmpRegion;
}
#endregion
}
/**//// -----------------------------------------------------------------------------
/// Project : LzmTW.Common
/// Class : Common.RegionalCodeClass.Regional
///
/// -----------------------------------------------------------------------------
/// <summary>
/// 区划定义
/// </summary>
/// <remarks>
/// </remarks>
/// <history>
/// [lzmtw] 2005-10-24 Created
/// </history>
/// -----------------------------------------------------------------------------
public class Regional
...{
private string _Code;
private string _Name;
private string _FullName;
private KindType _Kind;
/**//// -----------------------------------------------------------------------------
/// <summary>
/// New
/// </summary>
/// <param name="iCode">区划码</param>
/// <param name="iName">名称</param>
/// <remarks>
/// </remarks>
/// <history>
/// [lzmtw] 2005-10-23 Created
/// </history>
/// -----------------------------------------------------------------------------
public Regional(string iCode, string iName)
...{
_Code = iCode;
_Name = iName;
_Kind = GetKind(iCode);
//取类型
}
/**//// -----------------------------------------------------------------------------
/// <summary>
/// 区划码
/// </summary>
/// <value></value>
/// <remarks>
/// </remarks>
/// <history>
/// [lzmtw] 2005-10-23 Created
/// </history>
/// -----------------------------------------------------------------------------
public string Code ...{
get ...{ return _Code; }
}
/**//// -----------------------------------------------------------------------------
/// <summary>
/// 名称
/// </summary>
/// <value></value>
/// <remarks>
/// </remarks>
/// <history>
/// [lzmtw] 2005-10-23 Created
/// </history>
/// -----------------------------------------------------------------------------
public string Name ...{
get ...{ return _Name; }
}
/**//// -----------------------------------------------------------------------------
/// <summary>
/// 全名
/// </summary>
/// <value></value>
/// <remarks>
/// </remarks>
/// <history>
/// [lzmtw] 2005-10-23 Created
/// </history>
/// -----------------------------------------------------------------------------
public string FullName ...{
get ...{ return _FullName; }
set ...{ _FullName = value; }
}
/**//// -----------------------------------------------------------------------------
/// <summary>
/// 区划类型
/// </summary>
/// <value></value>
/// <remarks>
/// </remarks>
/// <history>
/// [lzmtw] 2005-10-23 Created
/// </history>
/// -----------------------------------------------------------------------------
public KindType Kind ...{
get ...{ return _Kind; }
}
/**//// -----------------------------------------------------------------------------
/// <summary>
/// 转换数组
/// </summary>
/// <returns></returns>
/// <remarks>
/// </remarks>
/// <history>
/// [lzmtw] 2005-10-23 Created
/// </history>
/// -----------------------------------------------------------------------------
public Array ToArray()
...{
return new string[] ...{_Code, _Name, _FullName, _Kind.ToString};
}
/**//// -----------------------------------------------------------------------------
/// <summary>
/// 基本信息
/// </summary>
/// <returns></returns>
/// <remarks>
/// 如:110107 北京市石景山区
/// </remarks>
/// <history>
/// [lzmtw] 2005-10-23 Created
/// </history>
/// -----------------------------------------------------------------------------
public override string ToString()
...{
return _Code + " " + _FullName;
}
/**//// -----------------------------------------------------------------------------
/// <summary>
/// 取区划类型
/// </summary>
/// <param name="iCode"></param>
/// <returns></returns>
/// <remarks>
/// </remarks>
/// <history>
/// [lzmtw] 2005-10-23 Created
/// </history>
/// -----------------------------------------------------------------------------
private KindType GetKind(string iCode)
...{
KindType Result = KindType.未定义;
switch (Convert.ToInt16(iCode.Substring(2, 2))) ...{
//中组
case 0:
//XX00XX
switch (Convert.ToInt16(iCode.Substring(4, 2))) ...{
//尾组
case 0:
//XX0000
Result = KindType.省;
break;
default:
//XX00--
break;
//未定义
}
break;
default:
//XX--XX
switch (Convert.ToInt16(iCode.Substring(4, 2))) ...{
//尾组
case 0:
//XX--00
switch (Convert.ToInt16(iCode.Substring(2, 2))) ...{
//中组
case 1: // TODO: to 20
Result = KindType.省直辖市;
break;
case 21: // TODO: to 50
Result = KindType.地区含州或盟;
break;
case 51: // TODO: to 99
Result = KindType.省直辖市;
break;
}
break;
//XX----
case 1: // TODO: to 20
Result = KindType.市辖区或地辖区;
break;
case 21: // TODO: to 80
Result = KindType.县或旗;
break;
case 81: // TODO: to 99
Result = KindType.省直辖县级市;
break;
default:
break;
//未定义
}
break;
}
return Result;
}
/**//// -----------------------------------------------------------------------------
/// <summary>
/// 区划类型
/// </summary>
/// <remarks>
/// </remarks>
/// <history>
/// [lzmtw] 2005-10-23 Created
/// </history>
/// -----------------------------------------------------------------------------
public enum KindType
...{
省,
省直辖市,
地区含州或盟,
市辖区或地辖区,
县或旗,
省直辖县级市,
未定义
}
}
/// Project : LzmTW.Common
/// Class : Common.RegionalCodeClass.Regional
///
/// -----------------------------------------------------------------------------
/// <summary>
/// 区划定义
/// </summary>
/// <remarks>
/// </remarks>
/// <history>
/// [lzmtw] 2005-10-24 Created
/// </history>
/// -----------------------------------------------------------------------------
public class Regional
...{
private string _Code;
private string _Name;
private string _FullName;
private KindType _Kind;
/**//// -----------------------------------------------------------------------------
/// <summary>
/// New
/// </summary>
/// <param name="iCode">区划码</param>
/// <param name="iName">名称</param>
/// <remarks>
/// </remarks>
/// <history>
/// [lzmtw] 2005-10-23 Created
/// </history>
/// -----------------------------------------------------------------------------
public Regional(string iCode, string iName)
...{
_Code = iCode;
_Name = iName;
_Kind = GetKind(iCode);
//取类型
}
/**//// -----------------------------------------------------------------------------
/// <summary>
/// 区划码
/// </summary>
/// <value></value>
/// <remarks>
/// </remarks>
/// <history>
/// [lzmtw] 2005-10-23 Created
/// </history>
/// -----------------------------------------------------------------------------
public string Code ...{
get ...{ return _Code; }
}
/**//// -----------------------------------------------------------------------------
/// <summary>
/// 名称
/// </summary>
/// <value></value>
/// <remarks>
/// </remarks>
/// <history>
/// [lzmtw] 2005-10-23 Created
/// </history>
/// -----------------------------------------------------------------------------
public string Name ...{
get ...{ return _Name; }
}
/**//// -----------------------------------------------------------------------------
/// <summary>
/// 全名
/// </summary>
/// <value></value>
/// <remarks>
/// </remarks>
/// <history>
/// [lzmtw] 2005-10-23 Created
/// </history>
/// -----------------------------------------------------------------------------
public string FullName ...{
get ...{ return _FullName; }
set ...{ _FullName = value; }
}
/**//// -----------------------------------------------------------------------------
/// <summary>
/// 区划类型
/// </summary>
/// <value></value>
/// <remarks>
/// </remarks>
/// <history>
/// [lzmtw] 2005-10-23 Created
/// </history>
/// -----------------------------------------------------------------------------
public KindType Kind ...{
get ...{ return _Kind; }
}
/**//// -----------------------------------------------------------------------------
/// <summary>
/// 转换数组
/// </summary>
/// <returns></returns>
/// <remarks>
/// </remarks>
/// <history>
/// [lzmtw] 2005-10-23 Created
/// </history>
/// -----------------------------------------------------------------------------
public Array ToArray()
...{
return new string[] ...{_Code, _Name, _FullName, _Kind.ToString};
}
/**//// -----------------------------------------------------------------------------
/// <summary>
/// 基本信息
/// </summary>
/// <returns></returns>
/// <remarks>
/// 如:110107 北京市石景山区
/// </remarks>
/// <history>
/// [lzmtw] 2005-10-23 Created
/// </history>
/// -----------------------------------------------------------------------------
public override string ToString()
...{
return _Code + " " + _FullName;
}
/**//// -----------------------------------------------------------------------------
/// <summary>
/// 取区划类型
/// </summary>
/// <param name="iCode"></param>
/// <returns></returns>
/// <remarks>
/// </remarks>
/// <history>
/// [lzmtw] 2005-10-23 Created
/// </history>
/// -----------------------------------------------------------------------------
private KindType GetKind(string iCode)
...{
KindType Result = KindType.未定义;
switch (Convert.ToInt16(iCode.Substring(2, 2))) ...{
//中组
case 0:
//XX00XX
switch (Convert.ToInt16(iCode.Substring(4, 2))) ...{
//尾组
case 0:
//XX0000
Result = KindType.省;
break;
default:
//XX00--
break;
//未定义
}
break;
default:
//XX--XX
switch (Convert.ToInt16(iCode.Substring(4, 2))) ...{
//尾组
case 0:
//XX--00
switch (Convert.ToInt16(iCode.Substring(2, 2))) ...{
//中组
case 1: // TODO: to 20
Result = KindType.省直辖市;
break;
case 21: // TODO: to 50
Result = KindType.地区含州或盟;
break;
case 51: // TODO: to 99
Result = KindType.省直辖市;
break;
}
break;
//XX----
case 1: // TODO: to 20
Result = KindType.市辖区或地辖区;
break;
case 21: // TODO: to 80
Result = KindType.县或旗;
break;
case 81: // TODO: to 99
Result = KindType.省直辖县级市;
break;
default:
break;
//未定义
}
break;
}
return Result;
}
/**//// -----------------------------------------------------------------------------
/// <summary>
/// 区划类型
/// </summary>
/// <remarks>
/// </remarks>
/// <history>
/// [lzmtw] 2005-10-23 Created
/// </history>
/// -----------------------------------------------------------------------------
public enum KindType
...{
省,
省直辖市,
地区含州或盟,
市辖区或地辖区,
县或旗,
省直辖县级市,
未定义
}
}
/**//// -----------------------------------------------------------------------------
/// Project : LzmTW.Common
/// Class : Common.RegionalCodeClass.RegionalCollection
///
/// -----------------------------------------------------------------------------
/// <summary>
/// 数据字典
/// </summary>
/// <remarks>
/// </remarks>
/// <history>
/// [lzmtw] 2005-10-24 Created
/// </history>
/// -----------------------------------------------------------------------------
private class RegionalCollection : System.Collections.DictionaryBase
...{
public void Add(Regional iItem)
...{
this.Dictionary.Add(iItem.Code, iItem);
}
public void Remove(string Code)
...{
this.Dictionary.Remove(Code);
}
public Regional Item ...{
get ...{ return (Regional)this.Dictionary.Item(Code); }
}
}
/// Project : LzmTW.Common
/// Class : Common.RegionalCodeClass.RegionalCollection
///
/// -----------------------------------------------------------------------------
/// <summary>
/// 数据字典
/// </summary>
/// <remarks>
/// </remarks>
/// <history>
/// [lzmtw] 2005-10-24 Created
/// </history>
/// -----------------------------------------------------------------------------
private class RegionalCollection : System.Collections.DictionaryBase
...{
public void Add(Regional iItem)
...{
this.Dictionary.Add(iItem.Code, iItem);
}
public void Remove(string Code)
...{
this.Dictionary.Remove(Code);
}
public Regional Item ...{
get ...{ return (Regional)this.Dictionary.Item(Code); }
}
}
- 全国县及县以上行政区划代码信息类(C#.Net)
- 全国县及县以上行政区划代码信息类
- 最新县及县以上行政区划代码
- [python]抓取2011年县及县以上行政区划代码
- 实用PHP脚本:最新县及县以上行政区划代码
- 实用PHP脚本:最新县及县以上行政区划代码
- [JSON]2017年最新县及县以上行政区划代码
- [JSON]2017年最新县及县以上行政区划代码
- [JSON]2017年最新县及县以上行政区划代码
- 全国行政区划代码具体到县
- 最新县及县以上行政区划代码(截止2013年1月18日) 全国省市县数据库 之省市数据
- 最新县及县以上行政区划代码(截止2013年1月18日) 全国省市县数据库 之县级数据
- 最新县及县以上行政区划代码(截止2013年1月18日) 全国省市县数据库 之县级数据
- 中国行政区划代码数据库文件 - 最新县及县以上行政区划代码(截止2012年10月31日)
- 最新县及县以上行政区划代码(截止2007年12月31日)
- 最新县及县以上行政区划代码(截止2009年12月31日)
- 最新县及县以上行政区划代码(截止2013年8月31日)
- php 抓取中国统计局 最新县及县以上行政区划代码
- 何昕博客 资料整理
- 使用winrar进行日常备份
- 关于Servlet
- Javax.servlet API的特征
- css文件调用
- 全国县及县以上行政区划代码信息类(C#.Net)
- 推荐一款免费的SQL脚本格式化工具--SQLinForm
- 毕业设计记录(2008、4、14)
- 常用软件注册码 及注册方法
- How add debug information in the VC++ Win32 Release mode
- 马伊琍结婚生子,马伊琍文章因《奋斗》结缘,如今被曝奉子成婚
- 一天36小时规则 Steve Pavlina MetalDudu(译)
- Servlet的相关类和接口
- 关于Delphi的Combox乱码问题的研究