Solved

Looping StringBuilder strings

Posted on 2008-10-28
5
1,603 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
ID: 22823431
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
ID: 22823520
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
ID: 22823695
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
ID: 22824367
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
ID: 31510792
Exactly what I needed. Thanks.
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Article by: Najam
Having new technologies does not mean they will completely replace old components.  Recently I had to create WCF that will be called by VB6 component.  Here I will describe what steps one should follow while doing so, please feel free to post any qu…
This article describes a simple method to resize a control at runtime.  It includes ready-to-use source code and a complete sample demonstration application.  We'll also talk about C# Extension Methods. Introduction In one of my applications…
This video demonstrates how to create an example email signature rule for a department in a company using CodeTwo Exchange Rules. The signature will be inserted beneath users' latest emails in conversations and will be displayed in users' Sent Items…
A short film showing how OnPage and Connectwise integration works.

919 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

16 Experts available now in Live!

Get 1:1 Help Now