• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1652
  • Last Modified:

Looping StringBuilder strings

Hi,
    I have a C# StringBuilder with the below strings:

2.1.1 ICSS
2.1.1 ICSS
2.1.1 ICSS
2.1.4 User Interface
2.1.4 User Interface  
2.1.5 Alarm Management  
2.1.5 Alarm Management  
2.1.5 Alarm Management  
2.1.5 Alarm Management

How can I loop through these strings & count the total of each type. e.g. The results would be:
2.1.1. ICSS = 3
2.1.4 User Interface = 2
2.1.5 Alarm management = 4

Thanks
Paul.
0
pr_wainwright
Asked:
pr_wainwright
  • 3
  • 2
1 Solution
 
Mike TomlinsonMiddle School Assistant TeacherCommented:
How are they delimited?

Regardless, use a HashTable type structure and add a counter variable to it using the strings as the key.  If the key already exists then increment the value already stored there.

What version C# are you using?
0
 
pr_wainwrightAuthor Commented:
Idle_Mind,
                I am using Visual Web Developer 2005. I have never used hash tables before. Any help on these appreciated.

Thanks
Paul.
0
 
Mike TomlinsonMiddle School Assistant TeacherCommented:
How are the strings delimited in the StringBuilder?....are they separated by comma, tab, something else?....
0
 
Mike TomlinsonMiddle School Assistant TeacherCommented:
I don't do web development...but hopefully this should give a good idea of how it can be done:
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private StringBuilder sb = new StringBuilder();
 
        private void Form1_Load(object sender, EventArgs e)
        {
            sb.Append("2.1.1 ICSS" + ",");
            sb.Append("2.1.1 ICSS" + ",");
            sb.Append("2.1.1 ICSS" + ",");
            sb.Append("2.1.4 User Interface" + ",");
            sb.Append("2.1.4 User Interface" + ",");
            sb.Append("2.1.5 Alarm Management" + ",");
            sb.Append("2.1.5 Alarm Management" + ",");
            sb.Append("2.1.5 Alarm Management" + ",");
            sb.Append("2.1.5 Alarm Management");
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            Dictionary<string, int> counts = new Dictionary<string, int>();
            foreach (String value in sb.ToString().Split(",".ToCharArray()))
            {
                if (!counts.ContainsKey(value))
                {
                    counts.Add(value, 1);
                }
                else
                {
                    counts[value] = counts[value] + 1;
                }
            }
 
            foreach (String key in counts.Keys)
            {
                MessageBox.Show(key + " = " + counts[key].ToString());
            }
        }
 
    }

Open in new window

0
 
pr_wainwrightAuthor Commented:
Exactly what I needed. Thanks.
0

Featured Post

Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

  • 3
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now