★★★获取字符串重复次数与字符串名称★★★

CN_Azure 2010-10-10 03:43:45

string str = "红色,红色,黑色,黑色,白色";

想要获取的结果:

红色 2次
黑色 2次
白色 1次

不但要获取颜色的名称,还要获取出现的次数.

请大家帮帮忙!!
...全文
87 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
h8641975230 2010-10-20
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 q107770540 的回复:]
C# code

void Main()
{

string str = "红色,红色,黑色,黑色,白色";

var query = from s in str.Split(',')
group s by s.ToString() into t
……
[/Quote]
还是用LINQ好 很犀利
HolyPlace 2010-10-10
  • 打赏
  • 举报
回复
使用Hashtable 的键和值

string str = "红色,红色,黑色,黑色,白色";

Hashtable hs = new Hashtable();
foreach (string strtmp in str.Split(',')) {
if (!hs.Contains(strtmp))
hs.Add(strtmp, 1);
else {
hs[strtmp] = (int)hs[strtmp] + 1;
}
}
q107770540 2010-10-10
  • 打赏
  • 举报
回复

void Main()
{

string str = "红色,红色,黑色,黑色,白色";

var query = from s in str.Split(',')
group s by s.ToString() into t
select new
{
t.Key,
sCount = t.Count()
};
foreach (var q in query)
{
Console.WriteLine(q.Key + " " + q.sCount + " 次");
}
}
//结果:

红色 2 次
黑色 2 次
白色 1 次

CN_Azure 2010-10-10
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 wuyq11 的回复:]

string str = "红色,红色,黑色,黑色,白色";
Dictionary<String,int> dic=Dictionary<String,int>();
foreach(string s in str.Split(','))
{
if(dic.ContainsKey(s))
{}
else {}
}
[/Quote]

谢谢.请说下思路.Dictionary我用的不多.

能具体描述下如何获取他重复的次数与重复的名称吗?

谢谢!
wuyq11 2010-10-10
  • 打赏
  • 举报
回复
if (dic.ContainsKey(s))
dic[i] = dic[i] + 1;
else
dic.Add(i, 1);

string[] arr =str.Split(',');
var result = arr.GroupBy(s => s).Select(s => new { Key = s.Key, Count = s.Count() });
var query =
from a in arr
group arr by a into g
orderby g.Count()
select new
{
g.Key,
count = g.Count()
};
wuyq11 2010-10-10
  • 打赏
  • 举报
回复
string str = "红色,红色,黑色,黑色,白色";
Dictionary<String,int> dic=Dictionary<String,int>();
foreach(string s in str.Split(','))
{
if(dic.ContainsKey(s))
{}
else {}
}
CN_Azure 2010-10-10
  • 打赏
  • 举报
回复
需要二维数组吗,想保存在一个参数中返回.
这样方便读取

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧