你的值不固定,写个循环遍历需要很多很多的判断,举个例子,一但有不同的值你就需要遍历一遍,这样下来不知道要遍历多少遍(如果数组比较大的话),效率是比较低的。建议保存到数据库
建立表
id values
1 A
2 B
3 A
4 C
......select id,count(*) from table group by id这样就可以得到你要的结果,再从数据库取出值赋给新数组
建立表
id values
1 A
2 B
3 A
4 C
......select id,count(*) from table group by id这样就可以得到你要的结果,再从数据库取出值赋给新数组
StringBuilder sb = new StringBuilder();
for(int i=0;i<str1.Length;i++)
{
sb.Append(str1[i]);
}
string s = sb.ToString();
ArrayList str2 = new ArrayList();
string temp = "";
int len = 0;
while(s.Length>0)
{
len = s.Length;
temp = s[0].ToString();
s = s.Replace(temp,"");
str2.Add(temp+"-"+Convert.ToString(len-s.Length));
}
这个问题不好用数组解决的关键就是你不知道有多少不重复的值。
建立一个DataTable表,
然后用语句查询
{
switch(s)
case "A":
str2[0]++;
case "B":
str2[1]++;
...
}
foreach循环依次取第一个数组
{
判断第二个数组是否为空或其中有与当前第一个数组中类似的值
如果没有,第二个数组添加一项
如果有,第二个数组中相同的值的count+1
}