詳解C#對(duì)Dictionary內(nèi)容的通用操作
一、實(shí)現(xiàn)效果
1.1實(shí)現(xiàn)的功能
①添加信息到字典中;
②根據(jù)鍵獲取值;
③根據(jù)值獲取鍵;
④修改指定鍵的值;
⑤修改指定值為相同信息;
⑥根據(jù)鍵移除信息;
⑦根據(jù)值移除信息;
1.2實(shí)現(xiàn)的功能效果圖
二、實(shí)現(xiàn)核心
/*** * Title:"容器" 項(xiàng)目 * 主題:Dictionary的幫助類 * Description: * 功能: * ①添加信息到字典中 * ②根據(jù)鍵獲取值 * ③根據(jù)值獲取鍵 * ④修改指定鍵的值 * ⑤修改指定值為相同信息 * ⑥根據(jù)鍵移除信息 * ⑦根據(jù)值移除信息 * Version:0.1版本 * Author:Coffee * Modify Recoder: */ using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Utils { public class DictionaryHelper { /// <summary> /// 添加信息到字典中 /// </summary> /// <typeparam name="TKey">鍵類型</typeparam> /// <typeparam name="TValue">值類型</typeparam> /// <param name="dic">字典</param> /// <param name="key">需添加的鍵</param> /// <param name="value">需添加的值</param> public static void AddInfoToDic<TKey, TValue>(Dictionary<TKey, TValue> dic, TKey key, TValue value) { if (dic == null) { dic = new Dictionary<TKey, TValue>(); } if (dic.ContainsKey(key)) { dic[key] = value; } else { dic.Add(key, value); } } /// <summary> /// 根據(jù)鍵獲取值 /// </summary> /// <typeparam name="TKey">鍵類型</typeparam> /// <typeparam name="TValue">值類型</typeparam> /// <param name="dic">字典</param> /// <param name="key">鍵</param> /// <returns>返回鍵對(duì)應(yīng)的值</returns> public static TValue GetValueOfKey<TKey, TValue>(Dictionary<TKey, TValue> dic, TKey key) { TValue tmpValue = default(TValue); if (dic != null && dic.Count > 0) { if (dic.ContainsKey(key)) { tmpValue = dic[key]; } } return tmpValue; } /// <summary> /// 根據(jù)值獲取鍵 /// </summary> /// <typeparam name="TKey">鍵類型</typeparam> /// <typeparam name="TValue">值類型</typeparam> /// <param name="dic">字典</param> /// <param name="value">值</param> /// <returns>返回值對(duì)應(yīng)的所有鍵</returns> public static List<TKey> GetKeyOfValue<TKey, TValue>(Dictionary<TKey, TValue> dic, TValue value) { List<TKey> keyList = new List<TKey>(); foreach (KeyValuePair<TKey, TValue> kv in dic) { if (kv.Value.Equals(value)) { TKey tmpKey = kv.Key; keyList.Add(tmpKey); } } return keyList; } /// <summary> /// 修改指定鍵的值 /// </summary> /// <typeparam name="TKey">鍵類型</typeparam> /// <typeparam name="TValue">值類型</typeparam> /// <param name="dic">字典</param> /// <param name="needModifyKey">需要修改的鍵</param> /// <param name="replaceValue">需要替換的值</param> /// <returns>返回修改結(jié)果(true:表示成功)</returns> public static bool ModifyInfoOfKey<TKey, TValue>(Dictionary<TKey, TValue> dic, TKey needModifyKey, TValue replaceValue) { if (dic == null || dic.Count < 1) return false; if (dic.ContainsKey(needModifyKey)) { dic[needModifyKey] = replaceValue; return true; } else { return false; } } /// <summary> /// 修改指定值為相同信息 /// </summary> /// <typeparam name="TKey">鍵類型</typeparam> /// <typeparam name="TValue">值類型</typeparam> /// <param name="dic">字典</param> /// <param name="needModifyValue">需要修改的值</param> /// <param name="replaceValue">需要替換的值</param> public static void ModifyInfoOfValue<TKey, TValue>(Dictionary<TKey, TValue> dic, TValue needModifyValue, TValue replaceValue) { if (dic == null || dic.Count < 1) return; for (int i = 0; i < dic.Count;) { TValue tmpValue = dic.ElementAt(i).Value; if (tmpValue.Equals(needModifyValue)) { TKey tmpKey = dic.ElementAt(i).Key; dic[tmpKey] = replaceValue; i = 0; } else { i++; } } } /// <summary> /// 根據(jù)鍵移除信息 /// </summary> /// <typeparam name="TKey">鍵類型</typeparam> /// <typeparam name="TValue">值類型</typeparam> /// <param name="dic">字典</param> /// <param name="needDeleteKey">需要?jiǎng)h除的鍵</param> /// <returns>返回移除結(jié)果(true:表示成功)</returns> public static bool RemoveInfoOfKey<TKey, TValue>(Dictionary<TKey, TValue> dic,TKey needDeleteKey) { if (dic.ContainsKey(needDeleteKey)) { dic.Remove(needDeleteKey); return true; } else { return false; } } /// <summary> /// 根據(jù)值移除信息 /// </summary> /// <typeparam name="TKey">鍵類型</typeparam> /// <typeparam name="TValue">值類型</typeparam> /// <param name="dic">字典</param> /// <param name="needDeleteValue">需要?jiǎng)h除的值</param> /// <returns>返回結(jié)果(true:表示成功)</returns> public static bool RemoveInfoOfValue<TKey, TValue>(Dictionary<TKey, TValue> dic, TValue needDeleteValue) { if (dic == null || dic.Count < 1) return false; int initCount = dic.Count; for (int i = 0; i < dic.Count;) { TValue tmpValue = dic.ElementAt(i).Value; if (tmpValue.Equals(needDeleteValue)) { TKey tmpKey = dic.ElementAt(i).Key; dic.Remove(tmpKey); i = 0; } else { i++; } } if (initCount > dic.Count) { return true; } else { return false; } } }//Class_end }
三、使用方法
3.1引用命名空間
using Utils;
3.2使用示例
using System; using System.Collections.Generic; using Utils; namespace Test_Dictionary { class Program { static void Main(string[] args) { Console.WriteLine("Hello World!"); //獲取到字典信息 Dictionary<string, string> dic = GetDictionary(); Console.WriteLine($"1-開(kāi)始獲取到的字典的所有信息如下:"); ShowInfoOfDic(dic); //根據(jù)鍵獲取到對(duì)應(yīng)的值 string queryKey = "L1"; Console.WriteLine($"當(dāng)前查詢的鍵是:{queryKey}"); string tmpValue = DictionaryHelper.GetValueOfKey(dic,queryKey); Console.WriteLine($"2-獲取到——鍵:L1對(duì)應(yīng)的值是:{tmpValue}"); //根據(jù)值獲取到對(duì)應(yīng)的所有鍵 string queryValue = "23.4"; Console.WriteLine($"當(dāng)前查詢的值是:{queryValue}"); List<string> tmpKey = DictionaryHelper.GetKeyOfValue(dic, queryValue); ShowInfoOfList(tmpKey); //修改指定鍵的值 string needModifyKey = "L4"; string replaceValue1 = "66"; Console.WriteLine($"當(dāng)前需要修改的鍵是:{needModifyKey}_替換為的值是:{replaceValue1}"); DictionaryHelper.ModifyInfoOfKey(dic, needModifyKey, replaceValue1); Console.WriteLine($"修改的鍵是:{needModifyKey}_替換為的值是:{replaceValue1}后所有內(nèi)容如下:"); ShowInfoOfDic(dic); //修改指定值為相同信息 string needModifyValue = "23.6"; string replaceValue = "33.9"; Console.WriteLine($"當(dāng)前需要修改的值是:{needModifyValue}_替換為的值是:{replaceValue}"); DictionaryHelper.ModifyInfoOfValue(dic,needModifyValue,replaceValue); Console.WriteLine($"修改的值是:{needModifyValue}_替換為的值是:{replaceValue}后所有內(nèi)容如下:"); ShowInfoOfDic(dic); //根據(jù)鍵移除信息 string curRemoveKey = "L3"; Console.WriteLine($"當(dāng)前移除的鍵是:{curRemoveKey}"); DictionaryHelper.RemoveInfoOfKey(dic,curRemoveKey); Console.WriteLine($"移除的鍵是:{curRemoveKey}后所有內(nèi)容如下:"); ShowInfoOfDic(dic); //根據(jù)值移除信息 string curRemoveValue = "23.4"; Console.WriteLine($"當(dāng)前移除的值是:{curRemoveValue}"); DictionaryHelper.RemoveInfoOfValue(dic, curRemoveValue); Console.WriteLine($"移除的值是:{curRemoveValue}后所有內(nèi)容如下:"); ShowInfoOfDic(dic); Console.ReadLine(); } //獲取一個(gè)字典 public static Dictionary<string, string> GetDictionary() { Dictionary<string, string> dic = new Dictionary<string, string>(); DictionaryHelper.AddInfoToDic(dic, "L1","23.4"); DictionaryHelper.AddInfoToDic(dic, "L2", "23.6"); DictionaryHelper.AddInfoToDic(dic, "L3", "23.8"); DictionaryHelper.AddInfoToDic(dic, "L4", "23.4"); DictionaryHelper.AddInfoToDic(dic, "L5", "23.6"); DictionaryHelper.AddInfoToDic(dic, "L6", "23.4"); return dic; } //顯示字典中的所有信息 private static void ShowInfoOfDic(Dictionary<string,string> dic) { if (dic == null || dic.Count < 1) return; foreach (var item in dic) { Console.WriteLine($"鍵:{item.Key} 值:{item.Value}"); } Console.WriteLine($"--------------顯示信息完成______當(dāng)前字典:{dic.GetType().Name} 共有數(shù)據(jù):{dic.Count} 條\r\n"); } //顯示列表信息 private static void ShowInfoOfList(List<string> list) { if (list == null || list.Count < 1) return; foreach (var item in list) { Console.WriteLine($"對(duì)應(yīng)內(nèi)容:{item}"); } Console.WriteLine($"--------------顯示信息完成______當(dāng)前列表:{list.GetType().Name} 共有數(shù)據(jù):{list.Count} 條\r\n"); } }//Class_end }
到此這篇關(guān)于詳解C#對(duì)Dictionary內(nèi)容的通用操作的文章就介紹到這了,更多相關(guān)C# Dictionary內(nèi)容操作內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C#實(shí)現(xiàn)計(jì)算器精簡(jiǎn)版
這篇文章主要為大家詳細(xì)介紹了C#實(shí)現(xiàn)計(jì)算器精簡(jiǎn)版,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01c#數(shù)據(jù)綁定之?dāng)?shù)據(jù)轉(zhuǎn)化為信息的示例
這篇文章主要介紹了c#數(shù)據(jù)綁定中的數(shù)據(jù)轉(zhuǎn)化為信息的示例,需要的朋友可以參考下2014-04-04C#結(jié)合JavaScript實(shí)現(xiàn)秒殺倒計(jì)時(shí)的方法
這篇文章主要介紹了C#結(jié)合JavaScript實(shí)現(xiàn)秒殺倒計(jì)時(shí)的方法,涉及C#結(jié)合javascript操作時(shí)間的技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-04-04C#?基于NAudio實(shí)現(xiàn)對(duì)Wav音頻文件剪切(限PCM格式)
本文主要介紹了C#基于NAudio工具對(duì)Wav音頻文件進(jìn)行剪切,可以將一個(gè)音頻文件剪切成多個(gè)音頻文件(限PCM格式),感興趣的小伙伴可以學(xué)習(xí)一下2021-11-11C#?計(jì)算DataTime的4種時(shí)間差的方法(相差天數(shù)、相差小時(shí)、相差分鐘、相差秒)
這篇文章主要介紹了C#?計(jì)算DataTime的4種時(shí)間差(相差天數(shù)、相差小時(shí)、相差分鐘、相差秒),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-05-05