我想在一个MSMQ消息队列中使用Linq。据我所知,我需要将消息队列转换为IEnumerable Howerver
var queryableQ = new MessageQueue(myQueuePath) as IEnumerable<Message>;
导致querableQ为null,表示无法像这样强制转换MessageQueue。
是否有一种不同的方法可用于使用Linq访问MessageQueue。
(我知道GetAllMessages()将返回一个数组,当然很容易用Linq查询,但我宁愿不把整个队列内容带到内存中)
答案 0 :(得分:5)
您需要使用Cast()
运算符:
IEnumberable<Message> queryableQ = new MessageQueue(myQueuePath).Cast<Message>();