hashtable与数组的转换
需求:抓取内箱所有lot的DC后,去重后按从小到大的顺序以“/”连接起来
如:DC1:2108/2109,DC2:2107/2108,DC3:2108,DC4:2107
则:需要的合并结果为2107/2108/2109
HashSet<string> hsAlreadyScanProDC = new HashSet<string>();
//取得模板名字
string innnerTemplate = tableName.Split('-')[0];
//获取所有lot的产品DC
foreach(DataTable dt in ds_data.Tables)
{
if (dt.TableName.StartsWith(innnerTemplate))
{
string[] arrTmpAlreadyScanProDC = dt.Rows[0]["Product_DC"].ToString().Trim().Split('/');
for (int j = 0; j < arrTmpAlreadyScanProDC.Length; j++)
{
//HashSet做去重操作
hsAlreadyScanProDC.Add(arrTmpAlreadyScanProDC[j]);
}
}
}
//Hahset本身不能排序,需抓换为数组后调用数组类的排序方法
string[] arrAlreadyScanProDC = hsAlreadyScanProDC.ToArray();
//顺序排序获取的产品DC
Array.Sort(arrAlreadyScanProDC);
string drxTmp = string.Empty;
foreach(string dc in arrAlreadyScanProDC)
{
drxTmp += dc + "/";
}
dr[x] = drxTmp.TrimEnd('/');