介面的延遲 在調用OpenAI的介面時,不免會有很慢的感覺,拋去地理位置上的網路延遲,大量的延遲往往發生在響應生成的過程中。 因此,如果使用同步介面的話,需要等待響應完全生成之後才能最終顯示輸出結果,雖然在對接微信或者其他需要通過介面請求的應用服務時沒什麼特別好的處理方案,但是如果是Web應用的話, ...
1、前言
為啥要寫StringCollection與StringDictionary這兩個集合呢?這兩個集合都可以存儲字元串的數據結構,都是非泛型的可以存儲任何類型的數據,都是使用數組存儲元素,因此使用他們效率更高。
2、簡介
首先介紹一下這兩者:
StringCollection 是一個字元串數組,存儲了多個字元串,但沒有鍵值對的關係。它是一種有序的字元串數組,通過索引訪問字元串,並可以通過 Add 方法將字元串添加到數組中。StringCollection可以認為是類似於 List<String> 或者string[] 數組。
StringDictionary 是一種存儲字元串鍵值對的字典。它存儲了字元串的鍵和對應的值,並可以通過鍵訪問字元串。它也是有序的,並且支持增加,修改和刪除字元串鍵值對。StringDictionary 可以認為是類似於 Dictionary<string, string> 的鍵值對集合。
3、兩者比較:
StringCollection 是一個字元串數組,可以存儲多個字元串,但是沒有鍵值對關係。
StringDictionary 是一個字元串鍵值對的字典,每個字元串都有一個唯一的鍵,可以通過鍵查詢對應的值。
類別 | 是否區分大小寫 | 是否允許鍵值重覆 | 訪問方式 |
StringCollection | True | True | 通過索引Index來訪問 |
StringDictionary | False | False | 通過鍵key來訪問 |
4、使用示例
StringCollection繼承自 CollectionBase 類。下麵是使用 StringCollection 的一個簡單示例:
using System.Collections; using System; using System.Collections.Specialized; class Program { static void Main(string[] args) { StringCollection stringCollection = new StringCollection(); // 向集合中添加字元串 stringCollection.Add("劉備"); stringCollection.Add("關羽"); stringCollection.Add("張飛"); //插入集合 stringCollection.Insert(3,"趙雲"); stringCollection.AddRange(new string[] { "公眾號", "dotnet開發跳槽", "歡迎關註" }); //移除數據 stringCollection.Remove("趙雲"); // 使用 foreach 迴圈遍歷集合中的字元串 foreach (string s in stringCollection) { Console.WriteLine(s); } Console.ReadLine(); } } //輸出結果: //劉備 關羽 張飛 公眾號 dotnet開發跳槽 歡迎關註 //其中趙雲增加了又刪除了
StringDictionary 繼承自 DictionaryBase 類。下麵是使用 StringDictionary 的一個簡單示例:
using System.Collections; using System; using System.Collections.Specialized; class Program { static void Main(string[] args) { StringDictionary stringDictionary = new StringDictionary(); // 向字典中添加鍵/值對 stringDictionary.Add("Key1", "劉備");//方式1 stringDictionary["Key2"] = "關羽";//方式2 stringDictionary.Add("Key3", "張飛"); stringDictionary.Add("Key4", "趙雲"); // 獲取字典中的某個值 Console.WriteLine(stringDictionary["Key4"]); //移除 stringDictionary.Remove("Key4"); // 使用 foreach 迴圈遍歷字典中的鍵/值對 foreach (DictionaryEntry entry in stringDictionary) { Console.WriteLine("鍵: {0}, 值: {1}", entry.Key, entry.Value); } Console.ReadLine(); } } // 趙雲 // 鍵: key1, 值: 劉備 // 鍵: key3, 值: 張飛 // 鍵: key2, 值: 關羽
以上是使用案例,僅供參考,具體根據項目情況使用。
5、使用場景
寫了這麼多,那麼它們的使用場景是什麼呢?如下
StringCollection
適用於存儲一組無需額外關聯信息的字元串,比如文件路徑列表,文件名列表等。
StringDictionary
適用於存儲鍵值對的字元串,比如用戶名與密碼,錯誤代碼與錯誤消息等。
具體根據項目情況選擇使用。
6、結語
本文介紹了c#兩個特色集合類StringCollection與StringDictionary以及他們的異同、使用案例和使用場景。希望本文讓你有所收穫,同時歡迎留言吐槽。