/// <summary>
        ///
        /// </summary>
        /// <param name="source"></param>
        /// <param name="symbol">Строковое значение для разделения элементов</param>
        /// <param name="values"></param>
        public static ItemText Merge(this ItemText source, string symbol, params ItemText[] values)
        {
            if (source == null || values == null || values.Count() == 0)
            {
                return(source);
            }

            foreach (var value in values)
            {
                foreach (ItemTextUnit item in value.Items)
                {
                    var found = source.Items.FirstOrDefault(c => c.Language == item.Language);
                    if (found != null)
                    {
                        found.Text += $"{symbol}{item.Text}";
                    }
                    else
                    {
                        source.AddOrUpdate(item.Language, item.Text);
                    }
                }
            }

            return(source);
        }
 public static void ReplaceValues(this ItemText item, ItemText replace)
 {
     item.Items.Clear();
     replace?.Items.ForEach(c => item.AddOrUpdate(c));
 }