BindingNavigator
C# 屬性(Property) get set
StringBuilder
https://www.bilibili.com/video/BV15u4y1F72C/
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 - 優先隊列,元素根據優先級進行排序。
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 + " 毫秒");}
}
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);
選擇哪種方法取決于你的具體需求和場景。如果性能非常關鍵,并且你需要頻繁地執行批量添加操作,那么使用擴展方法或將元素添加到列表后再復制到隊列可能是更好的選擇。