允许相同密钥的通用集合
像HashTable
和Dictionary
这样的集合不允许使用相同的键添加值,但我想在Collection
使用相同的键存储相同的值。
是否有内置的集合让我这样做?
您可以使用包含自定义类的List
,甚至可以使用List
。
List> values = new List>(); values.Add(Tuple.Create(23, "Foo")); values.Add(Tuple.Create(23, "Bar"));
或者,您可以创建Dictionary
(或其他一些字符串集合),并以这种方式填充值。
Dictionary> dict = new Dictionary>(); dict.Add(23, new List { "Foo", "Bar" });
这具有仍然通过密钥提供快速查找的优点,同时允许每个密钥具有多个值。 但是,稍后添加值有点棘手。 如果使用这个,我会在方法中封装值的添加,即:
void Add(int key, string value) { List values; if (!dict.TryGetValue(key, out values)) { values = new List (); dict[key] = values; } values.Add(value); }
使用带有自定义Class
的List
。
public class MyClass { public int MyInt { get; set; } public string MyString { get; set; } } List myList = new List (); myList.Add(new MyClass { MyInt = 1, MyString = "string" });
简而言之:最简单的方法是在滑动ArrayList
类时使用通用的List
集合。 因为,您需要考虑一些性能因素 。
此外,您还可以使用List
。 这将存储一个可以重复的KeyValuePair
列表。
在决定是否使用List
类时,两者都具有相似的function,请记住List
类在大多数情况下表现更好并且类型安全。 如果引用类型用于List
类的类型T,则两个类的行为是相同的。 但是,如果值类型用于类型T,则需要考虑实现和装箱问题。
作为参考:您可以使用以下MSDN文章 – 列表类 。
上述就是C#学习教程:允许相同密钥的通用集合分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/961288.html