using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class String_demo : MonoBehaviour {
private Dictionary<string, List<string>> _lib = new Dictionary<string, List<string>>();
private Dictionary<string, int> _lib_paixu = new Dictionary<string, int>();
//总的库
List<string> _list = new List<string>();
//只为了字符串名字,可替换
public GameObject[] str_arr;
// Use this for initialization
void Start () {
Fan_test();
}
// Update is called once per frame
void Update () {
}
//把字符串查重后加进字典
void Pixu_str(string str)
{
if (_list.Contains(str))
{
List<string> _list_test = new List<string>();
_list_test.Add(str);
_lib[str].Add(str);
}
else
{
_list.Add(str);
List<string> _list_test = new List<string>();
_list_test.Add(str);
_lib.Add(str, _list_test);
}
}
//对查重后的字典进行排序
void Fan_test()
{
for (int i = 0; i < str_arr.Length; i++)
{
Pixu_str(str_arr[i].name);
}
// print("查重后个数:" + _lib.Count);
foreach (var item in _lib)
{
// print("重复的名字" + item.Key + "重复次数" + item.Value.Count);
_lib_paixu.Add(item.Key, item.Value.Count);
}
List<KeyValuePair<string, int>> list = new List<KeyValuePair<string, int>>(_lib_paixu);
list.Sort(delegate (KeyValuePair<string, int> s1, KeyValuePair<string, int> s2)
{
//从大到小
return s2.Value.CompareTo(s1.Value);
//从小到大
//return s1.Value.CompareTo(s2.Value);
});
for (int i = 0; i < list.Count; i++)
{
print("字符串值"+ list[i].Key+"\n"+ "出现的次数" + list[i].Value);
}
}
}