VariableCollection

VariableCollection class

Набор переменных документа.

public class VariableCollection : IEnumerable<KeyValuePair<string, string>>

Характеристики

Имя Описание
Count { get; } Получает количество элементов, содержащихся в коллекции.
Item { get; set; } Получает или задает переменную документа по имени без учета регистра. Нулевые значения не допускаются в качестве правой части присваивания и будут заменены пустой строкой. (2 indexers)

Методы

Имя Описание
Add(string, string) Добавляет переменную документа в коллекцию.
Clear() Удаляет все элементы из коллекции.
Contains(string) Определяет, содержит ли коллекция переменную документа с заданным именем.
GetEnumerator() Возвращает объект перечислителя, который можно использовать для перебора всех переменных в коллекции.
IndexOfKey(string) Возвращает отсчитываемый от нуля индекс указанной переменной документа в коллекции.
Remove(string) Удаляет переменную документа с указанным именем из коллекции.
RemoveAt(int) Удаляет переменную документа по указанному индексу.

Примечания

Имена и значения переменных являются строками.

Имена переменных нечувствительны к регистру.

Примеры

Показывает, как работать с коллекцией переменных документа.

Document doc = new Document();
VariableCollection variables = doc.Variables;

// В каждом документе есть набор парных переменных ключ/значение, к которым мы можем добавлять элементы.
variables.Add("Home address", "123 Main St.");
variables.Add("City", "London");
variables.Add("Bedrooms", "3");

Assert.AreEqual(3, variables.Count);

// Мы можем отображать значения переменных в теле документа, используя поля DOCVARIABLE.
DocumentBuilder builder = new DocumentBuilder(doc);
FieldDocVariable field = (FieldDocVariable)builder.InsertField(FieldType.FieldDocVariable, true);
field.VariableName = "Home address";
field.Update();

Assert.AreEqual("123 Main St.", field.Result);

// Присвоение значений существующим ключам приведет к их обновлению.
variables.Add("Home address", "456 Queen St.");

// Затем нам нужно будет обновить поля DOCVARIABLE, чтобы убедиться, что они отображают актуальное значение.
Assert.AreEqual("123 Main St.", field.Result);

field.Update();

Assert.AreEqual("456 Queen St.", field.Result);

// Проверяем, существуют ли переменные документа с определенным именем или значением.
Assert.True(variables.Contains("City"));
Assert.True(variables.Any(v => v.Value == "London"));

// Коллекция переменных автоматически сортирует переменные в алфавитном порядке по имени.
Assert.AreEqual(0, variables.IndexOfKey("Bedrooms"));
Assert.AreEqual(1, variables.IndexOfKey("City"));
Assert.AreEqual(2, variables.IndexOfKey("Home address"));

// Перебрать набор переменных.
using (IEnumerator<KeyValuePair<string, string>> enumerator = doc.Variables.GetEnumerator())
    while (enumerator.MoveNext())
        Console.WriteLine($"Name: {enumerator.Current.Key}, Value: {enumerator.Current.Value}");

// Ниже приведены три способа удаления переменных документа из коллекции.
// 1 - По имени:
variables.Remove("City");

Assert.False(variables.Contains("City"));

// 2 - По индексу:
variables.RemoveAt(1);

Assert.False(variables.Contains("Home address"));

// 3 - Очистить всю коллекцию сразу:
variables.Clear();

Assert.That(variables, Is.Empty);

Смотрите также