日期:2014-05-18 浏览次数:20911 次
string[] b = { "一", "七", "一", "三", "四", "五", "二", "六", "三", "四", "一" }; Dictionary<string, List<int>> dic = new Dictionary<string, List<int>>(); for (int i = 0; i < b.Length; i++) { if (dic.ContainsKey(b[i])) dic[b[i]].Add(i); else { List<int> list = new List<int>(); list.Add(i); dic.Add(b[i], list); } } foreach (string s in dic.Keys) { Console.Write(s + ":"); foreach (int i in dic[s]) Console.Write(i + " "); Console.WriteLine(); } /* 输出: 一:0 2 10 七:1 三:3 8 四:4 9 五:5 二:6 六:7 */
------解决方案--------------------
private void button1_Click(object sender, EventArgs e) { string[] b = { "一", "七", "一", "三", "四", "五", "二", "六", "三", "四", "一" }; string returnValue =GetIndex(b, "一"); } public string GetIndex(string[] b,string value) { StringBuilder sb = new StringBuilder(); for (int i = 0; i < b.Length; i++) { if (b[i] == value) { sb.Append(","); sb.Append(i); } } return sb.ToString().Substring(1); }
------解决方案--------------------
string[] b = { "一", "七", "一", "三", "四", "五", "二", "六", "三", "四", "一" };
Dictionary<string, List<int>> dic = new Dictionary<string, List<int>>();
for (int i = 0; i < b.Length; i++)
{
if (dic.ContainsKey(b[i]))
dic[b[i]].Add(i);
else
{
List<int> list = new List<int>();
list.Add(i);
dic.Add(b[i], list);
}
}
foreach (string s in dic.Keys)
{
Console.Write(s + ":");
foreach (int i in dic[s])
Console.Write(i + " ");
Console.WriteLine();
}
/*
输出:
一:0 2 10
七:1
三:3 8
四:4 9
五:5
二:6
六:7
*/
------
漂亮!
------解决方案--------------------
HashTable可以直接用索引访问,应该快点
string[] b = { "一", "七", "一", "三", "四", "五", "二", "六", "三", "四", "一" }; Hashtable dic = new Hashtable(); for(int i=0;i<b.Length;i++) { string s = b[i]; if (dic[s] != null) { ((List<string>)dic[s]).Add(i.ToString());