队列工具-QueueUtil
# 简介
静态工具类 QueueUtil,是一个 C# 工具类,封装了常用的队列操作方法,包括添加元素、移除元素、访问元素等。这些方法可以对 Queue 类型的对象进行操作,包括添加单个元素或一组元素到队列末尾、从队列开头移除元素、访问队列开头元素等。此外,QueueUtil 还提供了一些辅助方法,如判断队列中是否包含指定元素、从队列中移除指定元素、将队列中的元素复制到新数组中等。通过使用 QueueUtil 工具类,我们可以更加方便地对队列进行常见操作。
# EasyTool.QueueUtil 类
方法说明:
Enqueue<T>
: 将指定元素添加到队列的末尾。EnqueueRange<T>
: 将指定集合中的元素添加到队列的末尾。Dequeue<T>
: 移除并返回位于队列开头的元素。Peek<T>
: 返回位于队列开头的元素而不将其移除。Contains<T>
: 确定队列中是否包含指定元素。Remove<T>
: 从队列中移除指定元素的第一个匹配项。ToArray<T>
: 将队列中的所有元素复制到新数组中。CopyTo<T>
: 将队列中的所有元素复制到新数组中,从指定的索引开始。Clear<T>
: 从队列中移除所有元素。
# Enqueue-将指定元素添加到队列的末尾
/// <summary>
/// 将指定元素添加到队列的末尾
/// </summary>
/// <typeparam name="T">队列元素类型</typeparam>
/// <param name="queue">队列</param>
/// <param name="item">要添加的元素</param>
public static void Enqueue<T>(Queue<T> queue, T item)
# EnqueueRange-将指定集合中的元素添加到队列的末尾
/// <summary>
/// 将指定集合中的元素添加到队列的末尾
/// </summary>
/// <typeparam name="T">队列元素类型</typeparam>
/// <param name="queue">队列</param>
/// <param name="collection">要添加到队列中的集合</param>
public static void EnqueueRange<T>(Queue<T> queue, IEnumerable<T> collection)
# Dequeue-移除并返回位于队列开头的元素
/// <summary>
/// 移除并返回位于队列开头的元素
/// </summary>
/// <typeparam name="T">队列元素类型</typeparam>
/// <param name="queue">队列</param>
/// <returns>队列开头的元素</returns>
/// <exception cref="System.InvalidOperationException">队列为空时引发异常</exception>
public static T Dequeue<T>(Queue<T> queue)
# Peek-返回位于队列开头的元素而不将其移除
/// <summary>
/// 返回位于队列开头的元素而不将其移除
/// </summary>
/// <typeparam name="T">队列元素类型</typeparam>
/// <param name="queue">队列</param>
/// <returns>队列开头的元素</returns>
/// <exception cref="System.InvalidOperationException">队列为空时引发异常</exception>
public static T Peek<T>(Queue<T> queue)
# Contains-确定队列中是否包含指定元素
/// <summary>
/// 确定队列中是否包含指定元素
/// </summary>
/// <typeparam name="T">队列元素类型</typeparam>
/// <param name="queue">队列</param>
/// <param name="item">要查找的元素</param>
/// <returns>如果队列包含指定元素,则为 true;否则为 false。</returns>
public static bool Contains<T>(Queue<T> queue, T item)
# Remove-从队列中移除指定元素的第一个匹配项
/// <summary>
/// 从队列中移除指定元素的第一个匹配项
/// </summary>
/// <typeparam name="T">队列元素类型</typeparam>
/// <param name="queue">队列</param>
/// <param name="item">要移除的元素</param>
/// <returns>如果已成功移除元素,则为 true;否则为 false。</returns>
public static bool Remove<T>(Queue<T> queue, T item)
# ToArray-将队列中的所有元素复制到新数组中
/// <summary>
/// 将队列中的所有元素复制到新数组中
/// </summary>
/// <typeparam name="T">队列元素类型</typeparam>
/// <param name="queue">队列</param>
/// <returns>包含队列中所有元素的新数组</returns>
public static T[] ToArray<T>(Queue<T> queue)
# CopyTo-将队列中的所有元素复制到新数组中,从指定的索引开始
/// <summary>
/// 将队列中的所有元素复制到新数组中,从指定的索引开始
/// </summary>
/// <typeparam name="T">队列元素类型</typeparam>
/// <param name="queue">队列</param>
/// <param name="array">要复制到的目标数组</param>
/// <param name="arrayIndex">目标数组的起始索引</param>
public static void CopyTo<T>(Queue<T> queue, T[] array, int arrayIndex)
# Clear-从队列中移除所有元素
/// <summary>
/// 从队列中移除所有元素
/// </summary>
/// <typeparam name="T">队列元素类型</typeparam>
/// <param name="queue">队列</param>
public static void Clear<T>(Queue<T> queue)
# 代码示例
using System;
using System.Collections.Generic;
using QueueUtil;
class Program
{
static void Main(string[] args)
{
Queue<int> queue = new Queue<int>();
QueueUtil.Enqueue(queue, 1);
QueueUtil.EnqueueRange(queue, new List<int> { 2, 3, 4 });
int first = QueueUtil.Dequeue(queue);
Console.WriteLine($"The first element of the queue is: {first}");
Console.WriteLine($"The queue contains 2: {QueueUtil.Contains(queue, 2)}");
QueueUtil.Remove(queue, 2);
int[] arr = QueueUtil.ToArray(queue);
Console.WriteLine($"The elements in the queue are: {string.Join(", ", arr)}");
QueueUtil.Clear(queue);
}
}
# 输出结果
The first element of the queue is: 1
The queue contains 2: True
The elements in the queue are: 3, 4
上次更新: 2023/04/26, 22:10:06