从字符串中删除重复项并计算每个项的出现次数 [英] Remove duplicate items from string and count occurrence of each item

查看:75
本文介绍了从字符串中删除重复项并计算每个项的出现次数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个字符串

   string  chars =   A | A | B | A + | C | B + | A + | C | A | B + | B;  





来自上面的字符串我想删除重复的项目并计算每个独特项目的出现次数。



结果应该类似于>>答:3; A +:2; B:2; B +:2; C:2



我想用C#实现上述目标。



谢谢试试这个:

  chars =   A | A | B | A + | C | B + | A + | C | A | B + | B; 
string output = string .Join( ;,chars.Split(' |'
.GroupBy(x = > x)
.OrderBy(x = > x.Key)
。选择(x = > string .Format( {0}:{1},x.Key,x。计数())));
Console.WriteLine(输出);



输出: A:3; A +:2; B:2; B +:2; C:2


Linq方法非常简单:

  string  chars =   A | A | B | A + | C | B + | A + | ç| A | B + | B; 
string [] sep = chars.Split(' |');
List< string> withCount = sep.GroupBy(s = > s)。选择(g = > g.Key + + g.Count())。ToList();
foreach string s in withCount)
{
Console.WriteLine(s);
}


I have a string

string chars = "A|A|B|A+|C|B+|A+|C|A|B+|B";



from above string I would like to remove duplicate items and count occurrence of each unique item.

Result should be like >> A: 3; A+: 2; B: 2; B+: 2; C: 2

I would like to achieve above in C#.

Thanks in advance.

解决方案

Try this:

string chars = "A|A|B|A+|C|B+|A+|C|A|B+|B";
string output = string.Join("; ", chars.Split('|')
    .GroupBy(x => x)
    .OrderBy(x => x.Key)
    .Select(x => string.Format("{0}: {1}", x.Key, x.Count())));
Console.WriteLine(output);


Output: A: 3; A+: 2; B: 2; B+: 2; C: 2


Linq methods make it pretty simple:

string chars = "A|A|B|A+|C|B+|A+|C|A|B+|B";
string[] sep = chars.Split('|');
List<string> withCount = sep.GroupBy(s => s).Select(g => g.Key+ " : " + g.Count()).ToList();
foreach (string s in withCount)
    {
    Console.WriteLine(s);
    }


这篇关于从字符串中删除重复项并计算每个项的出现次数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆