如何将两个不同类型的变量打包为一个对象变量
本文关键字:变量 同类型 一个对象 两个 | 更新日期: 2023-09-27 18:13:10
我正在编写多线程应用程序。
我需要这样的功能:一个method#1
将数据放入Queue<>
,method#2
从队列中获取这些数据并进行处理
Method#2
采用两个参数:XElement
和FileInfo
。如何将这两个变量存储在Queue<>
中以供进一步使用?
使用Tuple<XElement, FileInfo>
。像这样实例化:
Tuple<XElement, FileInfo> tuple = new Tuple<XElement, FileInfo>(elem, file);
然后像这样检索它的值:
XElement elem = tuple.Item1;
FileInfo file = tuple.Item2;
因此,您可以将Tuple<XElement, FileInfo>
放入Queue<Tuple<XElement, FileInfo>>
中,然后将元组出列并将其项传递给方法#2。
您可以创建一个具有XElement和FileInfo两个属性的类,然后将该类的实例存储在Queue中。
public MyClass {
public XElement xElement;
public FileInfo fileInfo;
}
然后使用它:
Queue<MyClass> queue = new Queue<MyClass>();
foreach (MyClass instance in queue) {
Method#2(instance.xElement, instance.fileInfo);
}
public Queue<(XElement, FileInfo)> data= new Queue<(XElement, FileInfo)>();
我将这种方法用于我的多线程数据系统。效果很好。