如何将两个不同类型的变量打包为一个对象变量

本文关键字:变量 同类型 一个对象 两个 | 更新日期: 2023-09-27 18:13:10

我正在编写多线程应用程序。

我需要这样的功能:一个method#1将数据放入Queue<>method#2从队列中获取这些数据并进行处理

Method#2采用两个参数:XElementFileInfo。如何将这两个变量存储在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)>();

我将这种方法用于我的多线程数据系统。效果很好。