如何在C#中向列表中添加多个参数

时间:2015-10-02 11:53:56

标签: c# .net list generics

如何将字符串添加到...

List<int> mapIds = new List<int>();
mapIds.Add(36);
mapIds.Add(37);
mapIds.Add(39);

是一个带有整数的列表.....我想为每个记录添加字符串...尝试...

List<int, string> mapIds = new List<int, string>();
mapIds.Add(36, "hi");
mapIds.Add(37, "how");
mapIds.Add(39, "now");

告诉我未知类型的变量?

4 个答案:

答案 0 :(得分:4)

List<T>T类型的对象的通用列表。

如果您希望在此列表中配对<int, sting>,则不应为List<int, string>,而应为List<Some_Type<int, string>>

可能的一种方法 - 使用Tuple<T1, T2>作为这种类型。

类似的东西:

var mapIds = new List<Tuple<int, string>>();
mapIds.Add(new Tuple<int, string>("36", "hi"));

或者您可以使用Dictionary<TKey, TValue>代替list,但在这种情况下,您的整数值应该是唯一的。

答案 1 :(得分:4)

您可以使用Dictionary而不是List。例如:

Dictionary<int, string> dictionary = new Dictionary<int, string>();
dictionary.Add(36, "hi");

了解更多信息: Dictionary Type on MSDN

答案 2 :(得分:2)

您可以创建一个类:

class Custom
{
   public int myInt {get;set;}
   public string myString {get;set}
}

然后:

List<Custom> mapIds = new List<Custom>();
Custom c = new Custom();
c.myInt = 36;
c.myString="hi";
mapIds.Add(c);    
....
...

答案 3 :(得分:0)

您还可以使用HashTableSortedList作为词典的另一个选项。这两个类都在System.Collections命名空间

哈希表

Hashtable使您可以存储任何类型对象的键/值对。数据根据密钥的哈希码存储,并且可以通过密钥而不是索引来访问。 例如:

Hashtable myHashtable = new Hashtable(); 
myHashtable.Add(1, "one"); 
myHashtable.Add(2, "two"); 
myHashtable.Add(3, "three");

排序列表

SortedList是一个包含键/值对的集合,但与HashTable不同,因为它可以被索引引用并且因为它是有序的。 例如:

SortedList sortedList = new System.Collections.SortedList();
sortedList.Add(3, "Third");
sortedList.Add(1, "First");
sortedList.Add(2, "Second");