/// <summary>
        /// Установка подполя.
        /// </summary>
        public IrbisRecord SetSubField
        (
            string tag,
            int fieldOccurrence,
            char code,
            int subFieldOccurrence,
            string newText
        )
        {
            RecordField field = Fields
                                .GetField(tag)
                                .GetOccurrence(fieldOccurrence);

            if (!ReferenceEquals(field, null))
            {
                SubField subField = field.GetSubField
                                    (
                    code,
                    subFieldOccurrence
                                    );
                if (!ReferenceEquals(subField, null))
                {
                    subField.Text = newText;
                }
            }

            return(this);
        }
        public static string GatherSubfields
        (
            this IrbisRecord record,
            string tag,
            string separator,
            params char[] codes
        )
        {
            RecordField field = record
                                .Fields
                                .GetField(tag)
                                .FirstOrDefault();

            if (ReferenceEquals(field, null))
            {
                return(null);
            }
            List <string> list = new List <string>();

            foreach (char code in codes)
            {
                string[] text = field
                                .GetSubField(code)
                                .GetSubFieldText();
                list.AddRange(text);
            }

            if (list.Count == 0)
            {
                return(null);
            }

            return(string.Join
                   (
                       separator,
                       list.ToArray()
                   ));
        }