如何在列表List <t,t2>中使用两种类型

时间:2018-09-26 10:47:53

标签: c# generics

我们可以在List <T>中使用两个不同的类型实参还是在类类型内添加一个以上实参?

例如:

public class ClassA
{
 public int a {get;set;}
 public int b {get;set;}
}

我需要在列表中使用更多属性,而无需编辑ClassA

public string c {get;set;}

public List<ClassA, c> list = new List<ClassA, c>

我应该能够访问列表中的c

item[0].a
item[0].b
item[0].c

3 个答案:

答案 0 :(得分:7)

如果您使用的是最新的C#版本,则可以使用元组:

Components

您也可以为其命名

public List<(ClassA, string)> list = new List<(ClassA, string)>

但是您不能直接访问ClassA内部的任何内容,必须使用第一个对象的名称。

答案 1 :(得分:0)

Dictionary<String,ClassA> myDictionary= New Dictionary<String,ClassA>();

Foreach(var k in myDictionary.Keys)
Debug.WriteLine(myDictionary[k]);// accesses (Value) ClassA objects

答案 2 :(得分:-1)

感谢帮助人员,这是很大的帮助。 但是在我的鳕鱼中,我使用了新课程:

public classB 
{
     public classA cA {get;set;}
     public str c {get;set;}
}

List<B>  i can access any data i need it.