【发布时间】:2017-04-26 08:38:34
【问题描述】:
我有一个数据源,其中包含 3 个不同的值,如下所示,
List<Configuration> lst = new List<Configuration>
{
new Configuration{Name="A", Config="X", Value="1"},
new Configuration{Name="A", Config="X", Value="2"},
new Configuration{Name="B", Config="Y", Value="2"}
};
public class Configuration
{
public string Name { get; set; }
public string Config { get; set; }
public string Value { get; set; }
}
在这里,我想迭代整个源,并希望将“Name”值保留为 KEY,并将“Config”和“Value”保留为“NameValueCollection”。
为此,我正在使用如下字典,
var config = new Dictionary<string, NameValueCollection>();
但在添加到这本词典时,我遇到了 2 个问题,
foreach(var c in lst)
{
config.Add(c.Name, new NameValueCollection { c.Config, c.Value });
}
- 重复键(Name="A")
- 这行给出错误,new NameValueCollection { c.Config, c.Value });
注意 - 我想要 X 的 1 和 2(以防重复键)
有没有更好的 C# 集合或如何解决上述错误。
谢谢!
【问题讨论】:
-
如果存在重复键,您希望看到什么? 1 和 2 都代表 X?或者也许是最新值?我们不知道
-
是的,1 和 2 都用于 X
-
我很想知道您想用这种 NameValueCollection 方法解决什么样的问题。看来您的第一个数据结构 (
List<Configuration>) 对于许多任务来说要好得多 -
我没有像“List
”这样的直接数据,NameValueCollection 用于其他目的(我们有重复的键 X 及其值 1 和 2)
标签: c#