使用两种类型的组合创建列表
本文关键字:组合 创建 列表 类型 两种 | 更新日期: 2023-09-27 18:02:40
我需要创建一个列表,其中每个成员是a和b两种类型的组合,这可能吗?例如,假设A和B:
class A
{
int a1;
string a2;
}
class B
{
int b1;
string b2;
}
我想创建:
List<A&B> SampleList;
的方式a &B包含以下属性:
int a1;
string a2;
int b1;
string b2;
尝试元组:https://msdn.microsoft.com/en-us/library/dd268536(v=vs.110).aspx
那么你可以使用:
var list = new List<Tuple<int, string>>();
list.Add(new Tuple(2, "some text));
并读取如下值:
Console.WriteLine(list[0].Item1); // writes 2
Console.WriteLine(list[0].Item2); // writes "some text"
方案一:使用两个单独的列表
解决方案二:使用字典。
解决方案3:创建一个类C,将a和B作为(public)成员,并创建一个C的列表。
三个选项:
-
创建一个新的类或结构:
public class AAndB { private readonly A a; private readonly B b; public AAndB(A a, B b) { this.a = a; this.b = b; } // etc }
-
使用
Tuple<A, B>
做同样的事情,但不创建一个新的类型 -
如果你只在一个方法中需要这个,使用匿名类型,例如
var mixed = as.Zip(bs, (a, b) => new { A = a, B = b });