【发布时间】:2014-01-03 06:07:55
【问题描述】:
| FieldName | header | code |
| a1 | test | |
| a1 | test | 1 |
| a1 | test | 2 |
| a1 | test | 3 |
| a1 | test | 4 |
| a1 | test | 5 |
| b2 | prod | 1 |
| b2 | prod | 2 |
| b2 | prod | 3 |
我有以下代码循环遍历表并将数据添加到哈希表中。 目前我的代码只添加了一个 a1 和 b2。但我打算用不同的键将它们全部添加到我的哈希表中。 例如:("a11",value), ("a12",value); (“a13”,值);和 b2..ect 一样。
public Hashtable GetData(Table table, string headerType)
{
var data = table.CreateSet<SpecFlowData>();
var hashtable = new Hashtable();
hashtable.Clear();
foreach (var currentRow in data)
{
var key = currentRow.FieldName;
var value = new Hashtable();
GetValue(value, currentRow);
if (hashtable.ContainsKey(key)) //continue;
{
var r = new Random();
key = key + r.Next();
}
var format = (string)value["header"];
if (headerType == format)
{
hashtable.Add(key, value);
}
break;
}
return hashtable;
}
更新:这里是getvalue方法:
private static void GetValue(Hashtable value, SpecFlowData currentRow)
{
value.Clear();
value.Add("code", currentRow.Code);
value.Add("name", currentRow.FieldName);
value.Add("header", currentRow.HeaderType);
}
为什么我的数据没有正确添加。感谢您的帮助。
【问题讨论】:
-
抱歉的意思是“没有正确添加”。
-
GetValue(Value,currentRow)是做什么的?你为什么每次都做一个新的随机? (以及为什么要使用 random?为什么不使用 int 并使用key = key + i++?) -
John..我这样做是为了创建一个随机数作为哈希表的键。我还在帖子中添加了 getvalue 方法。
-
你为什么要把所有这些都塞进一个随机键名的哈希表中?到目前为止,这看起来像是在滥用哈希表。