public void AddPattern(IColourInfo c) { // find out if Color already exists in list. foreach (ListViewItem lvi in patternList.Items) { if (lvi.BackColor == c.Colour) { lvi.Tag = c.Frequency; return; } } // Colour wasn't in list. Add a new one. AddPattern(c, CreateNewPattern()); }