問題:Dictionary<Dictonary<key,value>,value2>
如何根據相同value放在一起啊,key,value,value2都是string類型
<<"2", "c Item">,"df">
<<"6", "a Item">,"ad">
<<"1", "c Item">,"jk">
結果:
<<"2", "c Item">,"df">
<<"1", "c Item">,"jk">
<<"6", "a Item">,"ad">
using System;using System.Collections.Generic;using System.Text;namespace 對Dictionary的Value排序功能實現{ class Program { static void Main(string[] args) { Dictionary <string, string> dic1 = new Dictionary <string, string>(); dic1.Add("2", "c Item"); Dictionary <string, string> dic2 = new Dictionary <string, string>(); dic2.Add("6", "c Item"); Dictionary <string, string> dic3 = new Dictionary <string, string>(); dic3.Add("1", "a Item"); Dictionary<string, string> dc = new Dictionary<string, string>(); dc.Add("2", "c Item"); dc.Add("6", "a Item"); dc.Add("1", "c Item"); //取得value的非重複值,為了方便不從dic2List中取 List<string> va = new List<string>(); foreach (KeyValuePair<string, string> kvp in dc) { string valueWith = kvp.Value; if (!va.Contains(valueWith)) { va.Add(valueWith); } } Dictionary<Dictionary<string, string>, string> dic2list = new Dictionary<Dictionary<string, string>, string>(); dic2list.Add(dic1, "df"); dic2list.Add(dic2, "ad"); dic2list.Add(dic3, "jk"); Dictionary<Dictionary<string,string>,string> sortKeyValue=new Dictionary<Dictionary<string,string>,string>(); Dictionary<Dictionary<string, string>,string>.KeyCollection keyColl = dic2list.Keys; //value的非重複值迴圈,相等的放在一起 for (int i = 0; i < va.Count;i++ ) { string strList = va[i]; foreach (Dictionary<string, string> keyStr in keyColl) { Dictionary<string, string> keyOneValue = new Dictionary<string, string>(); string value2 = dic2list[keyStr]; Dictionary<string, string>.KeyCollection keyColl2 = keyStr.Keys; Dictionary<string, string>.ValueCollection valueColl2 = keyStr.Values; string ssk = string.Empty; string ssv = string.Empty; foreach (string sk in keyColl2) { ssk = sk; } foreach (string sv in valueColl2) { ssv = sv; } if (ssv.Equals(strList)) { keyOneValue.Add(ssk, ssv); sortKeyValue.Add(keyOneValue, value2); } } } Console.ReadKey(); } }}