计算对象列表中某个字符串的实例数量,然后以某种方式对其进行格式化

时间:2014-04-16 17:18:47

标签: c#

我有一个包含特定字符串的对象列表。当我通过它们进行枚举时,我希望能够识别所有匹配的并将它们组合在一起,然后将它们全部格式化为如下字符串:A005(x3),B006(x5),C002(x7),D001(x9) )。

有人能说明一个很好的方法吗?

1 个答案:

答案 0 :(得分:1)

假设您有一组字符串,此代码应该为您提供所需的结果。

strList.GroupBy(x => x)
.Select(x => string.Format("{0}(x{1})", x.Key, x.Count()));

这是一个测试程序:

var values = new[] {"A005", "B006", "C002", "D001",
            "B006", "A005", "D001", "C002", "A005" };

var uniqueValues = values
                .GroupBy(x => x)
                .Select(x => string.Format("{0}(x{1})", x.Key, x.Count()));

Console.WriteLine(string.Join(", ", uniqueValues));

生成此输出:

A005(x3), B006(x2), C002(x2), D001(x2)