我正在编写一个包含三列的规格流测试... 例如:
|Field | Key | Value |
|A | aa | "" |
| | bb | "" |
| | cc | 33 |
| | dd | 1 |
|B | aa | 5 |
| | bb | 4 |
| | cc | 2 |
| | dd | "" |
我添加了此方法来从表中读取数据:
var elements = new Dictionary<string, Dictionary<string,string>>().ToList();
var data = table.CreateSet<SpecFlowData>();
elements.AddRange(collection: from item in data
let field =item.Field
let key = item.Key
let value = item.Value
select new Dictionary<string, Dictionary<string,string>>()
{
Keys = field,
Values = new Dictionary<string,string>()
{
Keys= key,
Values = value
}
}
);
我正在尝试为第一列中的每个字段分配一个键值对。但是在构建代码时,我收到错误“没有setter的属性”。任何想法都表示赞赏。谢谢。
答案 0 :(得分:3)
您无法直接将Keys
和Values
分配给Dictionary<>
。但您可以使用LINQ将data
投影到Dictionary
的{{1}} {/ p>}
Dictionaries
答案 1 :(得分:2)
您无法专门设置Dictionary<,>.Keys
或Dictionary<,>.Values
属性。它们只是get
属性。您需要遍历您的值并使用Add(Key, Value)
或使用LINQ ToDictionary<TSource, TKey>
方法。