是否可以从MessageQueue实例获取IEnumerable <Message>

Ral*_*ton 4 linq msmq

我想在一个MSMQ消息队列上使用Linq.据我所知,我需要将消息队列作为IEnumerable Howerver

var queryableQ = new MessageQueue(myQueuePath) as IEnumerable<Message>;
Run Code Online (Sandbox Code Playgroud)

导致querableQ为null,表示无法像这样强制转换MessageQueue.

是否有一种不同的方法可用于使用Linq访问MessageQueue.

(我知道GetAllMessages()将返回一个数组,当然很容易用Linq查询,但我宁愿不将整个队列内容带入内存)

Mar*_*ade 5

您需要使用Cast()运算符:

IEnumberable<Message> queryableQ = new MessageQueue(myQueuePath).Cast<Message>();
Run Code Online (Sandbox Code Playgroud)