如果这是一个愚蠢的问题,我深表歉意,但请听我说:

Dictionary<string, string> genericDict = new Dictionary<string, string>;
genericDict.Add("blah", "bloop");
// Use the copy constructor to create a copy of this dictionary
return new Dictionary<string, string>(genericDict);


在上面的代码示例中,我可以创建通用词典的副本。

现在,假设我正在使用System.Collections.Specialized.StringDictionary,因为我不想在各处都键入“字符串”类型。 StringDictionary没有复制构造函数!实际上,它只有默认构造函数。

当然,我可以遍历StringDictionary并手动添加每个键/值对,但是我不想:-P

为什么没有复制构造函数?我在这里想念什么吗?

最佳答案

StringDictionary类型已经过时了。我认为Dictionary<String,String>是您要在这里使用的。

Dictionary<TKey,TValue>类型实现一些强类型的接口(ICollection<KeyValuePair<TKey, TValue>>IEnumerable<KeyValuePair<TKey, TValue>>),这比StringDictionary类型更有用。

虽然StringDictionary类型是强类型的,但我不会因为懒惰而建议使用它。

关于c# - 在C#.NET中,是否有理由不需要StringDictionary的副本构造函数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1131981/

10-09 04:29