Elm*_*lmo 6 .net c# vb.net collections
集合喜欢HashTable和Dictionary不允许使用相同的键添加值,但我想在a中使用相同的键存储相同的值Collection<int,string>.
是否有内置的集合让我这样做?
Ree*_*sey 10
您可以使用List<T>包含自定义类,甚至是List<Tuple<int,string>>.
List<Tuple<int,string>> values = new List<Tuple<int,string>>();
values.Add(Tuple.Create(23, "Foo"));
values.Add(Tuple.Create(23, "Bar"));
Run Code Online (Sandbox Code Playgroud)
或者,您可以创建一个Dictionary<int, List<string>>(或其他一些字符串集合),并以这种方式填充值.
Dictionary<int, List<string>> dict = new Dictionary<int, List<string>>();
dict.Add(23, new List<string> { "Foo", "Bar" });
Run Code Online (Sandbox Code Playgroud)
这具有仍然通过密钥提供快速查找的优点,同时允许每个密钥具有多个值.但是,稍后添加值有点棘手.如果使用这个,我将封装在方法中添加值,即:
void Add(int key, string value)
{
List<string> values;
if (!dict.TryGetValue(key, out values))
{
values = new List<string>();
dict[key] = values;
}
values.Add(value);
}
Run Code Online (Sandbox Code Playgroud)
List与自定义一起使用Class。
public class MyClass
{
public int MyInt { get; set; }
public string MyString { get; set; }
}
List<MyClass> myList = new List<MyClass>();
myList.Add(new MyClass { MyInt = 1, MyString = "string" });
Run Code Online (Sandbox Code Playgroud)