using System.Collections; namespace uPLibrary.Networking.M2Mqtt.Utility { /// /// Extension class for a Queue /// internal static class QueueExtension { /// /// Predicate for searching inside a queue /// /// Item of the queue /// Result of predicate internal delegate bool QueuePredicate(object item); /// /// Get (without removing) an item from queue based on predicate /// /// Queue in which to search /// Predicate to verify to get item /// Item matches the predicate internal static object Get(this Queue queue, QueuePredicate predicate) { foreach (var item in queue) { if (predicate(item)) return item; } return null; } } }