Возвращает ключ или индекс предмета коллекции в зависимости от переданного зачения параметра.

Collection.GetKey(eIndex)

Параметры

eIndex

Указывает требуемое выражение, которое представляет позицию предмета в коллекции. Это выражение может быть одним из двух типов:

  • Численное. Выражение eIndex должно иметь значение начиная с 1 и до значения свойства Count коллекции.

  • Строковое. Выражение eIndex должно соответствовать cKey, которое было указано при добавлении предмиета в коллекцию.

Expand imageВозвращаемое значение

В приведенной ниже таблице перечислены значения, которые может принимать GetKey.

Возвращаемое значение Условие

Строка (ключ)

Когда в качестве параметра посылается индекс или челочисленное значение

Челочисленное (инедкс)

Когда в качестве параметра посылается ключ или строка

Пустая строка("")

Когда в качестве параметра посылается индекс, который не существует или в случае, когда предметы добавлялись в коллекцию без использования ключей

0

Когда в качестве параметра посылается несуществующий ключ

Expand imageПримечания

  • Поскольку метод GetKey возвращает значение, вам необходимо добавить оператор RETURN в конец GetKey в коде исходника для любых модифицируемых вами субклассов. Например:

      CopyCode imageСкопировать код
    RETURN DODEFAULT( eIndex )

    Если вы не желаете возвращать значение, используйте команду RETURN без объединения с функцией DODEFAULT().

  • Для определения - использовались ли ключи при добавлении предметов в коллекцию, вы можете использовать предложение GetKey(1) и фукнцию EMPTY() для проверки возврата пустого значения, как это показано ниже:

      CopyCode imageСкопировать код
    ? !EMPTY(Collection.GetKey(1))
  • Для извлечения индекса или ключа предмета коллекции внутри цикла FOR EACH, используйте обычный цикл FOR вместо цикла FOR EACH.

  • Visual FoxPro сгенерирует ошибку, если в качестве параметра был послан неверный тип или параметр вообще не был передан методу GetKey.

Expand imageПример

В приведенном ниже примере показываются задачи, выполняемые после создания коллекции и добавления в нее предметов:

  • Проверка наличия ключей у предметов.

  • Извлечение и отображение ключа для второго предмета коллекции.

  CopyCode imageСкопировать код
CLEAR
LOCAL oItems AS Collection

oItems = NEWOBJECT("Collection")
oItems.Add("Daffodils", "flower2")
oItems.Add("Roses", "flower1", "flower2")
oItems.Add("Daisies", "flower3")
? !EMPTY(oItems.GetKey(1))
? oItems.GetKey(2) 

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