Solved

Looping StringBuilder strings

Posted on 2008-10-28
5
1,593 Views
Last Modified: 2012-05-05
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
Comment
Question by:pr_wainwright
  • 3
  • 2
5 Comments
 
LVL 85

Expert Comment

by:Mike Tomlinson
Comment Utility
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
 
LVL 1

Author Comment

by:pr_wainwright
Comment Utility
Idle_Mind,
                I am using Visual Web Developer 2005. I have never used hash tables before. Any help on these appreciated.

Thanks
Paul.
0
 
LVL 85

Expert Comment

by:Mike Tomlinson
Comment Utility
How are the strings delimited in the StringBuilder?....are they separated by comma, tab, something else?....
0
 
LVL 85

Accepted Solution

by:
Mike Tomlinson earned 100 total points
Comment Utility
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
 
LVL 1

Author Closing Comment

by:pr_wainwright
Comment Utility
Exactly what I needed. Thanks.
0

Featured Post

6 Surprising Benefits of Threat Intelligence

All sorts of threat intelligence is available on the web. Intelligence you can learn from, and use to anticipate and prepare for future attacks.

Join & Write a Comment

Article by: Ivo
C# And Nullable Types Since 2.0 C# has Nullable(T) Generic Structure. The idea behind is to allow value type objects to have null values just like reference types have. This concerns scenarios where not all data sources have values (like a databa…
In order to hide the "ugly" records selectors (triangles) in the rowheaders, here are some suggestions. Microsoft doesn't have a direct method/property to do it. You can only hide the rowheader column. First solution, the easy way The first sol…
In this tutorial you'll learn about bandwidth monitoring with flows and packet sniffing with our network monitoring solution PRTG Network Monitor (https://www.paessler.com/prtg). If you're interested in additional methods for monitoring bandwidt…
This tutorial demonstrates a quick way of adding group price to multiple Magento products.

772 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

13 Experts available now in Live!

Get 1:1 Help Now