待定待定待定

BindingNavigator

C# 属性(Property) get set

StringBuilder

https://www.bilibili.com/video/BV15u4y1F72C/

csharp 复制代码
C# 高级数据结构有哪些
List - 动态数组,可以动态增长和缩减,提供快速访问、添加和删除元素的功能。

Dictionary<TKey, TValue> - 基于键值对的集合,允许通过键快速访问元素。

HashSet - 一个不允许重复元素的集合,提供快速的添加、删除和查找操作。

SortedList<TKey, TValue> - 一个字典和列表的结合体,元素按键排序存储。

SortedDictionary<TKey, TValue> - 一个元素按键排序的字典。

LinkedList - 双向链表,适合频繁插入和删除的场景。

Queue - 队列,先进先出(FIFO)的数据结构。

Stack - 栈,后进先出(LIFO)的数据结构。

ObservableCollection - 一个线程安全的集合,当集合内容变化时可以通知绑定的UI元素。

ReadOnlyCollection - 只读集合,一旦创建就不能修改。

ConcurrentDictionary<TKey, TValue> - 线程安全的字典,适合多线程环境下使用。

BlockingCollection - 线程安全的集合,支持生产者-消费者模式。

PriorityQueue - 优先队列,元素根据优先级进行排序。
csharp 复制代码
C# 运行某段代码的时间
using System;
using System.Diagnostics;

class Program
{
    static void Main()
    {
        // 创建一个Stopwatch实例
        Stopwatch stopwatch = new Stopwatch();

        // 开始计时
        stopwatch.Start();

        // 这里是你想要测量执行时间的代码
        // 例如,我们这里使用一个简单的循环来模拟耗时操作
        for (int i = 0; i < 1000000; i++)
        {
            // 这里可以放置任何代码
        }

        // 停止计时
        stopwatch.Stop();

        // 输出执行时间
        Console.WriteLine("代码执行时间:" + stopwatch.ElapsedMilliseconds + " 毫秒");
    }
}
csharp 复制代码
Queue批量添加
在C#中,Queue<T> 类没有直接提供批量添加元素的方法。不过,你可以通过循环调用 Enqueue 方法来批量添加元素到队列中。这种方法虽然可行,但可能不是最高效的方式,因为它每次调用都会在队列的末尾添加一个元素。

如果你需要更高效地批量添加元素到 Queue<T>,可以考虑以下几种方法:

使用集合初始化器:
你可以使用集合初始化器来初始化 Queue<T>,这在创建队列时一次性添加多个元素。

Queue<int> queue = new Queue<int> { 1, 2, 3, 4, 5 };
使用 Enqueue 方法循环添加:
如果你需要在队列已经创建后添加多个元素,可以简单地使用循环来调用 Enqueue 方法。

Queue<int> queue = new Queue<int>();
int[] elementsToAdd = { 1, 2, 3, 4, 5 };
foreach (int element in elementsToAdd)
{
    queue.Enqueue(element);
}
使用 Queue.Enqueue 的扩展方法:
你可以创建一个扩展方法,它接受一个元素数组或集合,并将其元素批量添加到队列中。

public static class QueueExtensions
{
    public static void EnqueueRange<T>(this Queue<T> queue, IEnumerable<T> elements)
    {
        foreach (T element in elements)
        {
            queue.Enqueue(element);
        }
    }
}
然后,你可以像这样使用这个扩展方法:

Queue<int> queue = new Queue<int>();
queue.EnqueueRange(new int[] { 1, 2, 3, 4, 5 });
使用 Array.Copy 或 Collection.CopyTo:
如果你有一个数组或集合,并且 Queue<T> 的底层实现允许直接复制(比如 Queue<T> 的容量足够大),你可以尝试使用 Array.Copy 或 Collection.CopyTo 方法来复制元素。但请注意,这通常不是 Queue<T> 的推荐用法,因为 Queue<T> 的设计并不支持这种操作。

使用 List<T> 作为中间步骤:
如果批量添加操作非常频繁,并且性能是关键考虑因素,你可以考虑首先将元素添加到 List<T> 中,然后再将整个列表一次性复制到 Queue<T>。

List<int> list = new List<int> { 1, 2, 3, 4, 5 };
Queue<int> queue = new Queue<int>(list);
选择哪种方法取决于你的具体需求和场景。如果性能非常关键,并且你需要频繁地执行批量添加操作,那么使用扩展方法或将元素添加到列表后再复制到队列可能是更好的选择。
相关推荐
好开心啊没烦恼13 分钟前
Python 数据分析:计算,分组统计1,df.groupby()。听故事学知识点怎么这么容易?
开发语言·python·数据挖掘·数据分析·pandas
lljss20201 小时前
Python11中创建虚拟环境、安装 TensorFlow
开发语言·python·tensorflow
课堂剪切板1 小时前
ch03 部分题目思路
算法
山登绝顶我为峰 3(^v^)32 小时前
如何录制带备注的演示文稿(LaTex Beamer + Pympress)
c++·线性代数·算法·计算机·密码学·音视频·latex
Two_brushes.3 小时前
【算法】宽度优先遍历BFS
算法·leetcode·哈希算法·宽度优先
Python×CATIA工业智造4 小时前
Frida RPC高级应用:动态模拟执行Android so文件实战指南
开发语言·python·pycharm
我叫小白菜5 小时前
【Java_EE】单例模式、阻塞队列、线程池、定时器
java·开发语言
森焱森5 小时前
水下航行器外形分类详解
c语言·单片机·算法·架构·无人机
狐凄5 小时前
Python实例题:基于 Python 的简单聊天机器人
开发语言·python
weixin_446122466 小时前
JAVA内存区域划分
java·开发语言·redis