添加引用:using System.Data;和using System.Collections.Generic;
//……………………以下是自定义方法………………………………
Hashtable HsMakeOut = new Hashtable();//初始哈希表
/// <summary>
/// 数组去掉重复项
/// </summary>
/// <param name="AddHsName">便于重新命名更好的定义哈希表的值</param>
/// <param name="dnames">以','隔开的字符串(相当于数组)</param>
/// <returns>去掉重复项的字符串,以','隔开(相当于数组)</returns>
public string ArrayList(string AddHsName, string dnames)
{
List<string> ezone = new List<string>();//链表,便于检查重复项的操作
string ClearDitto = "";//新字符串(即新数组)
string[] ErrList = dnames.Split(',');//变字符串为数组
for (int i = 0; i < ErrList.Length; i++)//遍历数组,这里可以用foreach(string i in ErrList)
{
if (!ezone.Contains(ErrList[i]))//判断链表中是否存在该ErrList[i]字符串
{
HsMakeOut[AddHsName + ErrList[i].ToString()] = 1;//出现一次的
ezone.Add(ErrList[i]);//插入链表中,上面if语句已经判断了ErrList[i]字符串
if (ClearDitto == "") ClearDitto = ErrList[i].ToString();
else ClearDitto += "," + ErrList[i].ToString();//这两句确保了ClearDitto字符串的格式是以','隔开
}
else HsMakeOut[AddHsName + ErrList[i].ToString()] = int.Parse(HsMakeOut[AddHsName + ErrList[i].ToString()].ToString()) + 1;//出现多次的
}
return ClearDitto;//返回已经去掉重复项的字符串,或者返回数组也行(return ErrList;//不过开头的string要改为string[])
}
//下面要使用出现次数的,可以直接用 HsMakeOut [“ AddHsName”+“名称”](文字可能表述不清楚,看不懂可以私聊)
//…………………如需只要去掉重复项并返回数组,可看………………………
/// <summary>
/// 数组去掉重复项
/// </summary>
/// <param name="ErrList">原数组</param>
/// <returns>去掉重复项的数组</returns>
public string[] ArrayList(string[] ErrList)
{
List<string> ezone = new List<string>();
for (int i = 0; i < ErrList.Length; i++)
{
if (!ezone.Contains(ErrList[i]))
{
ezone.Add(ErrList[i]);
}
}
return ezone.ToArray();
}