I believe there is no real need to add multiple items to a queue in one message, because the best practice is to keep message and corresponding message handler as small as possible.
It is very hard to talk about inefficiency here. But when the number of messages grow so that it will really impact performance then you could use the BatchFlushInterval
property to batch your messages. Otherwise follow Best Practices for Performance Improvements Using Service Bus Brokered Messaging
UPDATE:
By batching messages yourself within, for example a list, you would need to solve, at the very least, the following problems which may result in an unmanageable solution:
- Keep track on the size of the message so as to not exceed the maximum message size limit
- Find the ways to abandon, complete and move particular messages to a dead letter queue
- Implement a batching strategy yourself
- Keep track of large message processing times and implement locking if it takes too long
PS If you could outline the purpose of your question, then a better solution might be found.