# VBForums CodeBank > CodeBank - C# >  DM Split String skip commas in quotes.

## BenJones

Hello.

Today I needed a way to split a string in to a list, but also skipping over commas resounded in quotes. so I looked at some old code I did for VB.NET, but found a bug, anyway looked into regex and came across some problems so gave up. then I started a new version from scratch. it's not in anyway full proof but it seems to serve my purpose. anyway I post here in the hope that it maybe us-full. if you find a bug and think you can fix it. please go ahead.

*Code*



csharp Code:
List<string> Split(string source, char sep, char quote)
        {
            List<string> _cols = new List<string>();
            int x = 0;
            char s = '\0';
            string sLine = "";
            string src = source;
            bool InQuote = false;
             //Append sep
            if (src[src.Length - 1] != sep)
            {
                src += sep;
            }
             while (x < src.Length)
            {
                //Check for quotes
                if (src[x] == quote)
                {
                    InQuote = !InQuote;
                }
                //if char is not seperator and not in quotes add string to list.
                else if ((src[x] == sep) && (!InQuote))
                {
                    //Add to collection.
                    _cols.Add(sLine);
                    //Clear the line.
                    sLine = string.Empty;
                }
                else
                {
                    //Prepare string for adding to list.
                    sLine += source[x];
                }
                //INC Counter.
                x++;
            }
            //Return list.
            return _cols;
        }
         private void button1_Click(object sender, EventArgs e)
        {
            //No quote string
            string Test1 = "one,two,six";
            string Test2 = "'one,two,six',Test with quotes,'10,20'";
             List<string> lst = new List<string>();
             lst = Split(Test1, ',', '\'');
             MessageBox.Show("Test 1");
             foreach (string item in lst)
            {
                MessageBox.Show(item);
            }
             //Test 2
            lst = Split(Test2, ',', '\'');
             MessageBox.Show("Test 2");
             foreach (string item in lst)
            {
                MessageBox.Show(item);
            }
             lst.Clear();
        }

----------

