static private int DenormalizeMessengersList <T, E>(ICard2 card, ICardPropertyList <T> propsList, int index)
            where T : class, ICardMultiProperty
            where E : ExtendibleEnum
        {
            List <IProperty> propsToDelete = new List <IProperty>();

            foreach (ITypedProperty <E> prop in propsList)
            {
                if (DenormalizeMessenger <E>(card, prop, index))
                {
                    propsToDelete.Add(prop);
                    index++;
                }
            }

            // Remove modified props.
            propsToDelete.ForEach(x => x.Remove());

            return(index);
        }
        static private int DenormalizePropertyList <T, E>(ICard2 card, ICardPropertyList <T> propsList, string propName, int index,
                                                          IEnumerable <string> supportedStandardTypes, IEnumerable <string> customLabelMetaTypes)
            where T : class, ICardMultiProperty
            where E : ExtendibleEnum
        {
            List <IProperty> propsToDelete = new List <IProperty>();

            foreach (ITypedProperty <E> prop in propsList)
            {
                if (DenormalizeTypedProperty <E>(card, prop, propName, index, supportedStandardTypes, customLabelMetaTypes))
                {
                    propsToDelete.Add(prop);
                    index++;
                }
            }

            // Remove modified props.
            propsToDelete.ForEach(x => x.Remove());

            return(index);
        }