public static void Main(string[] args)

        {
            List <string> baseStrs = new List <string>();

            baseStrs.Add("M-bcr");
            baseStrs.Add("mbcr");
            baseStrs.Add("MBCR");
            baseStrs.Add("Mbcr");
            baseStrs.Add("M-BCR");
            baseStrs.Add("M-BĆR");
            baseStrs.Add("Mbćr");
            baseStrs.Add("Amœba");
            baseStrs.Add("Amoeba");
            baseStrs.Add("résumé");
            baseStrs.Add("resume");
            baseStrs.Add("colour");
            baseStrs.Add("color");
            baseStrs.Add("retroceecal");
            baseStrs.Add("retrocaecal");
            baseStrs.Add("retrocecal");
            baseStrs.Add("reo virus");
            baseStrs.Add("reovirus");
            PrintList(baseStrs);

            BaseComparator <string> bc = new BaseComparator <string>();

            baseStrs.Sort(bc);
            PrintList(baseStrs);
        }
        private static bool CheckOrder(LexRecord lexRecord)

        {
            bool validFlag   = true;
            int  contentType = 1;

            string        citation = lexRecord.GetBase();
            List <string> spVars   = lexRecord.GetSpellingVars();
            List <string> bases    = new List <string>();

            bases.Add(citation);
            foreach (string spVar in spVars)

            {
                bases.Add(spVar);
            }

            BaseComparator <string> bc = new BaseComparator <string>();

            bases.Sort(bc);

            if (!citation.Equals(bases[0]))

            {
                lexRecord.SetBase((string)bases[0]);
                validFlag = false;
            }

            bases.RemoveAt(0);
            lexRecord.SetSpellingVars(bases);

            if (!validFlag)

            {
                ErrMsgUtilLexRecord.AddContentErrMsg(contentType, 6, citation, lexRecord);
            }

            return(validFlag);
        }