Π Π°Π±ΠΎΡ‚Π° со списками Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ β€” ΠΎΠ΄Π½Π° ΠΈΠ· самых частых Π·Π°Π΄Π°Ρ‡ ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π² 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅. Π­Ρ‚ΠΎΡ‚ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ позволяСт Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π½Π°Π±ΠΎΡ€Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΈΠΌΠΈ ΠΈ быстро ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ доступ ΠΊ Π½ΡƒΠΆΠ½Ρ‹ΠΌ элСмСнтам. Однако Π΄Π°ΠΆΠ΅ ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΈΠ½ΠΎΠ³Π΄Π° ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°ΡŽΡ‚ΡΡ с нюансами ΠΏΡ€ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ Π½ΠΎΠ²Ρ‹Ρ… элСмСнтов: Ρ‚ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ() Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π΅ Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ оТидалось, Ρ‚ΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ ошибки ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² сСрСдину списка. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ Ρ€Π°Π·Π±Π΅Ρ€Ρ‘ΠΌ всС Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ способы добавлСния элСмСнтов β€” ΠΎΡ‚ Π±Π°Π·ΠΎΠ²Ρ‹Ρ… Π΄ΠΎ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹Ρ…, с ΡƒΡ‡Ρ‘Ρ‚ΠΎΠΌ особСнностСй Ρ€Π°Π·Π½Ρ‹Ρ… вСрсий ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹.

ОсобоС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡƒΠ΄Π΅Π»ΠΈΠΌ Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹ΠΌ ошибкам, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ приводят ΠΊ ΠΏΠΎΡ‚Π΅Ρ€Π΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ списка Π²ΠΎ врСмя ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΌΡƒ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡŽ элСмСнтов Π² интСрфСйсС. Π’Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ элСмСнты Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΠΊΠΎΠ½Π΅Ρ†, Π½ΠΎ ΠΈ Π² ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с иСрархичСскими списками, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΊΠ°ΠΊ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ для Π±ΠΎΠ»ΡŒΡˆΠΈΡ… массивов Π΄Π°Π½Π½Ρ‹Ρ…. ВсС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ с коммСнтариями ΠΈ пояснСниями, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Π°ΠΆΠ΅ Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΈ ΠΌΠΎΠ³Π»ΠΈ Π»Π΅Π³ΠΊΠΎ ΠΈΡ… Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄ свои Π·Π°Π΄Π°Ρ‡ΠΈ.

1. Π‘Π°Π·ΠΎΠ²Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄: Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ()

Π‘Π°ΠΌΡ‹ΠΉ простой ΠΈ распространённый способ ΠΏΠΎΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ список Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ встроСнный ΠΌΠ΅Ρ‚ΠΎΠ΄ Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ(). Он автоматичСски Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Π΅Ρ‚ Π½ΠΎΠ²Ρ‹ΠΉ элСмСнт Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ссылку Π½Π° Π½Π΅Π³ΠΎ. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для 90% Π·Π°Π΄Π°Ρ‡, Π³Π΄Π΅ порядок элСмСнтов Π½Π΅ Π²Π°ΠΆΠ΅Π½ ΠΈΠ»ΠΈ ΠΎΠ½ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ.

Бинтаксис ΠΌΠ΅Ρ‚ΠΎΠ΄Π°:

БписокЗначСний.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ(Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠŸΠΎΠΌΠ΅Ρ‚ΠΊΠ°, ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ°, Π”Π°Π½Π½Ρ‹Π΅)

Π“Π΄Π΅:

  • πŸ”Ή Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ β€” ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€, содСрТимоС элСмСнта (строка, число, Π΄Π°Ρ‚Π° ΠΈ Ρ‚.Π΄.)
  • πŸ”Ή ΠŸΠΎΠΌΠ΅Ρ‚ΠΊΠ° β€” Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ„Π»Π°Π³ (истина/лоТь), ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π›ΠΎΠΆΡŒ
  • πŸ”Ή ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° β€” Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ ΠΏΠΈΠΊΡ‚ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° для Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ отобраТСния
  • πŸ”Ή Π”Π°Π½Π½Ρ‹Π΅ β€” Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, связанный с элСмСнтом

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ добавлСния Ρ‚Ρ€Ρ‘Ρ… элСмСнтов с Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…:

Бписок = Новый БписокЗначСний();

Бписок.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ("Π’ΠΎΠ²Π°Ρ€ 1", Π˜ΡΡ‚ΠΈΠ½Π°); // Π‘Ρ‚Ρ€ΠΎΠΊΠ° с ΠΏΠΎΠΌΠ΅Ρ‚ΠΊΠΎΠΉ

Бписок.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ(1000); // Число Π±Π΅Π· ΠΏΠΎΠΌΠ΅Ρ‚ΠΊΠΈ

Бписок.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ(ВСкущаяДата(), , Новый ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ°("img1")); // Π”Π°Ρ‚Π° с ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΎΠΉ

πŸ’‘

Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ элСмСнт с ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π”Π°Π½Π½Ρ‹Π΅ для хранСния GUID ΠΈΠ»ΠΈ ΠΊΠΎΠ΄Π° Π½ΠΎΠΌΠ΅Π½ΠΊΠ»Π°Ρ‚ΡƒΡ€Ρ‹. Π­Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΏΡ€ΠΈ поискС элСмСнтов ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ, Ссли значСния ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡ‚ΡŒΡΡ.

2. Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π² ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ: Π’ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ()

Когда трСбуСтся Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ элСмСнт Π½Π΅ Π² ΠΊΠΎΠ½Ρ†Π΅, Π° Π² ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ списка, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π’ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ(). Он позволяСт Ρ‚ΠΎΡ‡Π½ΠΎ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ порядок элСмСнтов, Ρ‡Ρ‚ΠΎ ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½ΠΎ для отобраТСния Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΎΡ‚Ρ‡Ρ‘Ρ‚Π°Ρ… ΠΈΠ»ΠΈ интСрфСйсах.

Бинтаксис:

БписокЗначСний.Π’ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ(ИндСкс, Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠŸΠΎΠΌΠ΅Ρ‚ΠΊΠ°, ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ°, Π”Π°Π½Π½Ρ‹Π΅)

ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ Π½ΡŽΠ°Π½ΡΡ‹:

  • πŸ”Έ Если ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ИндСкс = 0, элСмСнт станСт ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ Π² спискС
  • πŸ”Έ ΠŸΡ€ΠΈ ИндСкс = Бписок.ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ() элСмСнт добавится Π² ΠΊΠΎΠ½Π΅Ρ† (Π°Π½Π°Π»ΠΎΠ³ Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ())
  • πŸ”Έ Если индСкс ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ списка, Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ‚ ошибка {ΠžΠ±Ρ‰ΠΈΠΉΠœΠΎΠ΄ΡƒΠ»ΡŒ.БписокЗначСний.ΠœΠΎΠ΄ΡƒΠ»ΡŒ(13)}: ИндСкс Π²Π½Π΅ допустимого Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ вставки элСмСнта Π½Π° Π²Ρ‚ΠΎΡ€ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ:

Бписок = Новый БписокЗначСний();

Бписок.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ("ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт");

Бписок.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ("Π’Ρ€Π΅Ρ‚ΠΈΠΉ элСмСнт");

Бписок.Π’ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ(1, "Π’Ρ‚ΠΎΡ€ΠΎΠΉ элСмСнт"); // Π’Π΅ΠΏΠ΅Ρ€ΡŒ порядок: 0, 1 (Π½ΠΎΠ²Ρ‹ΠΉ), 2

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΡ€ΠΈ вставкС элСмСнтов Π² Ρ†ΠΈΠΊΠ»Π°Ρ… ΠΏΠΎ этому ΠΆΠ΅ списку (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Для КаТдого Π­Π»Π΅ΠΌ Из Бписок Π¦ΠΈΠΊΠ») ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΡ‚ΠΈ бСсконСчный Ρ†ΠΈΠΊΠ» ΠΈΠ»ΠΈ пропуск элСмСнтов. ВсСгда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ порядок ΠΈΠ»ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΠΉΡ‚Π΅ с ΠΊΠΎΠΏΠΈΠ΅ΠΉ списка.

3. МассовоС Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ элСмСнтов

Когда Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ сразу нСсколько элСмСнтов, Π³ΠΎΡ€Π°Π·Π΄ΠΎ эффСктивнСС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒΠ—Π½Π°Ρ‡Π΅Π½ΠΈΡ() ΠΈΠ»ΠΈ Ρ†ΠΈΠΊΠ» с Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ(). ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ быстрСС для Π±ΠΎΠ»ΡŒΡˆΠΈΡ… массивов (100+ элСмСнтов), Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ количСство ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ с ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ.

Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ:

ΠœΠ΅Ρ‚ΠΎΠ΄ 10 элСмСнтов 100 элСмСнтов 1000 элСмСнтов
Π¦ΠΈΠΊΠ» с Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ() 5 мс 45 мс 420 мс
Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒΠ—Π½Π°Ρ‡Π΅Π½ΠΈΡ() 3 мс 12 мс 85 мс

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒΠ—Π½Π°Ρ‡Π΅Π½ΠΈΡ():

ΠœΠ°ΡΡΠΈΠ²Π”Π°Π½Π½Ρ‹Ρ… = Новый Массив();

ΠœΠ°ΡΡΠΈΠ²Π”Π°Π½Π½Ρ‹Ρ….Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ("Π­Π»Π΅ΠΌΠ΅Π½Ρ‚1");

ΠœΠ°ΡΡΠΈΠ²Π”Π°Π½Π½Ρ‹Ρ….Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ("Π­Π»Π΅ΠΌΠ΅Π½Ρ‚2");

ΠœΠ°ΡΡΠΈΠ²Π”Π°Π½Π½Ρ‹Ρ….Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ("Π­Π»Π΅ΠΌΠ΅Π½Ρ‚3");

Бписок = Новый БписокЗначСний();

Бписок.Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒΠ—Π½Π°Ρ‡Π΅Π½ΠΈΡ(ΠœΠ°ΡΡΠΈΠ²Π”Π°Π½Π½Ρ‹Ρ…);

Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ массив Π΄Π°Π½Π½Ρ‹Ρ… Π·Π°Ρ€Π°Π½Π΅Π΅|ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ|ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ Ρ†Π΅Π»Π΅Π²ΠΎΠΉ список ΠΏΡ€ΠΈ нСобходимости|Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒΠ—Π½Π°Ρ‡Π΅Π½ΠΈΡ() для 50+ элСмСнтов-->

Для иСрархичСских списков (с Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΌΠΈ элСмСнтами) массовая Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Π’ этом случаС Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ†ΠΈΠΊΠ» с явным ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ родитСля Ρ‡Π΅Ρ€Π΅Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π”Π°Π½Π½Ρ‹Π΅:

Π ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ = Бписок.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ("ΠšΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΡ 1");

Бписок.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ("ΠŸΠΎΠ΄ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΡ 1.1", , , , Π ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ);

Бписок.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ("ΠŸΠΎΠ΄ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΡ 1.2", , , , Π ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ);

4. Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ элСмСнтов Ρ‡Π΅Ρ€Π΅Π· конструктор

Π’ 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ 8.3 появился ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ конструктор списка Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ элСмСнты Π±Π΅Π· написания ΠΊΠΎΠ΄Π°. Π­Ρ‚ΠΎΡ‚ способ идСально ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для быстрого прототипирования ΠΈΠ»ΠΈ ΠΊΠΎΠ³Π΄Π° Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π΄ΠΈΠ°Π»ΠΎΠ³ Π²Ρ‹Π±ΠΎΡ€Π°.

Как ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ конструктор:

  1. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Ρ‚ΠΈΠΏΠ° БписокЗначСний
  2. Π’ ΠΏΠ°Π½Π΅Π»ΠΈ свойств Π½Π°ΠΉΠ΄ΠΈΡ‚Π΅ ΠΊΠ½ΠΎΠΏΠΊΡƒ .. рядом с ΠΏΠΎΠ»Π΅ΠΌ значСния
  3. Π’ ΠΎΡ‚ΠΊΡ€Ρ‹Π²ΡˆΠ΅ΠΌΡΡ ΠΎΠΊΠ½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ, Π’ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΈ Π£Π΄Π°Π»ΠΈΡ‚ΡŒ

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° конструктора:

  • πŸ“Œ Π’ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠ΅ΠΉ элСмСнтов
  • πŸ“Œ Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ ΠΈ ΠΏΠΎΠΌΠ΅Ρ‚ΠΊΠΈ Ρ‡Π΅Ρ€Π΅Π· интСрфСйс
  • πŸ“Œ АвтоматичСская ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…
⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹Π΅ Ρ‡Π΅Ρ€Π΅Π· конструктор, ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° врСмя сСанса. Для постоянного хранСния списка Π΅Π³ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² Π₯ранилищСЗначСния ΠΈΠ»ΠΈ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ….
πŸ“Š Какой способ добавлСния элСмСнтов Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Ρ‡Π°Ρ‰Π΅?
Π§Π΅Ρ€Π΅Π· ΠΌΠ΅Ρ‚ΠΎΠ΄ Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ()
ΠœΠ΅Ρ‚ΠΎΠ΄ Π’ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ()
ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ списка
ΠœΠ°ΡΡΠΎΠ²ΡƒΡŽ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒΠ—Π½Π°Ρ‡Π΅Π½ΠΈΡ()

5. Π Π°Π±ΠΎΡ‚Π° с иСрархичСскими списками

Π˜Π΅Ρ€Π°Ρ€Ρ…ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ списки Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π΄Ρ€Π΅Π²ΠΎΠ²ΠΈΠ΄Π½Ρ‹Π΅ структуры, Π³Π΄Π΅ элСмСнты ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠ΅ ΡƒΠ·Π»Ρ‹. Для добавлСния Ρ‚Π°ΠΊΠΎΠ³ΠΎ элСмСнта Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ элСмСнт Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π΅ Π”Π°Π½Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ() ΠΈΠ»ΠΈ Π’ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ().

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ создания Ρ‚Ρ€Ρ‘Ρ… ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ влоТСнности:

Бписок = Новый БписокЗначСний();

// Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ 1

Π ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ1 = Бписок.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ("ΠšΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΡ А");

Π ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ2 = Бписок.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ("ΠšΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΡ Π‘");

// Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ 2

ΠŸΠΎΠ΄ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΡ1 = Бписок.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ("ΠŸΠΎΠ΄ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΡ А1", , , , Π ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ1);

ΠŸΠΎΠ΄ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΡ2 = Бписок.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ("ΠŸΠΎΠ΄ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΡ А2", , , , Π ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ1);

// Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ 3

Бписок.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ("Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ 1", , , , ΠŸΠΎΠ΄ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΡ1);

Бписок.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ("Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ 2", , , , ΠŸΠΎΠ΄ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΡ1);

Для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ принадлСТности элСмСнта ΠΊ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ():

Если Бписок.Π ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ(ΠŸΠΎΠ΄ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΡ1) = Π ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ1 Π’ΠΎΠ³Π΄Π°

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ("Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ А");

ΠšΠΎΠ½Π΅Ρ†Π•ΡΠ»ΠΈ;

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ иСрархичСских списков:

  • 🌳 Максимальная Π³Π»ΡƒΠ±ΠΈΠ½Π° влоТСнности β€” 100 ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ (ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹)
  • 🌳 ΠŸΡ€ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ элСмСнта Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠ΅ ΡƒΠ΄Π°Π»ΡΡŽΡ‚ΡΡ автоматичСски
  • 🌳 Для отобраТСния Π² интСрфСйсС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚ Ρ„ΠΎΡ€ΠΌΡ‹ с Ρ‚ΠΈΠΏΠΎΠΌ Π”Π΅Ρ€Π΅Π²ΠΎΠ—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ
Как ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ иСрархичСский список Π² Ρ„ΠΎΡ€ΠΌΠ΅?

Для отобраТСния иСрархичСского списка Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² Ρ„ΠΎΡ€ΠΌΠ΅:

1. Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚ Ρ‚ΠΈΠΏΠ° БписокЗначСний

2. Π’ свойствах элСмСнта управлСния установитС Π’ΠΈΠ΄ = Π”Π΅Ρ€Π΅Π²ΠΎ

3. ΠŸΡ€ΠΈΠ²ΡΠΆΠΈΡ‚Π΅ Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚ ΠΊ элСмСнту Ρ„ΠΎΡ€ΠΌΡ‹

4. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΠ”Π°Π½Π½Ρ‹Π΅Π”Π΅Ρ€Π΅Π²Π°() для динамичСского обновлСния

6. Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ элСмСнтов с ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΎΠΉ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ

Частая Π·Π°Π΄Π°Ρ‡Π° β€” Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ элСмСнты Π² список Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли ΠΈΡ… Ρ‚Π°ΠΌ Π΅Ρ‰Ρ‘ Π½Π΅Ρ‚. Для этого ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΠ°ΠΉΡ‚ΠΈΠŸΠΎΠ—Π½Π°Ρ‡Π΅Π½ΠΈΡŽ(), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ НСопрСдСлСно, Ссли элСмСнт Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½.

Π‘Π°Π·ΠΎΠ²Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ:

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ = "Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ элСмСнт";

Если Бписок.ΠΠ°ΠΉΡ‚ΠΈΠŸΠΎΠ—Π½Π°Ρ‡Π΅Π½ΠΈΡŽ(Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅) = НСопрСдСлСно Π’ΠΎΠ³Π΄Π°

Бписок.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ(Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅);

ΠšΠΎΠ½Π΅Ρ†Π•ΡΠ»ΠΈ;

Для слоТных ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, структур) ΠΈΠ»ΠΈ ΠΊΠΎΠ³Π΄Π° Π½ΡƒΠΆΠ½ΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ нСсколько ΠΏΠΎΠ»Π΅ΠΉ, Π»ΡƒΡ‡ΡˆΠ΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ сравнСния:

Ѐункция ЭлСмСнтУТСБущСствуСт(Бписок, НовыйЭлСмСнт)

Для КаТдого Π­Π»Π΅ΠΌ Из Бписок Π¦ΠΈΠΊΠ»

Если Π­Π»Π΅ΠΌ.Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.Код = НовыйЭлСмСнт.Код И Π­Π»Π΅ΠΌ.Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.НаимСнованиС = НовыйЭлСмСнт.НаимСнованиС Π’ΠΎΠ³Π΄Π°

Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ Π˜ΡΡ‚ΠΈΠ½Π°;

ΠšΠΎΠ½Π΅Ρ†Π•ΡΠ»ΠΈ;

ΠšΠΎΠ½Π΅Ρ†Π¦ΠΈΠΊΠ»Π°;

Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ Π›ΠΎΠΆΡŒ;

ΠšΠΎΠ½Π΅Ρ†Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ;

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ для Π±ΠΎΠ»ΡŒΡˆΠΈΡ… списков (1000+ элСмСнтов):

  • πŸ” ΠŸΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ отсортируйтС список ΠΏΠΎ полю, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΈΡ‰Π΅Ρ‚Π΅ Π΄ΡƒΠ±Π»ΠΈ
  • πŸ” Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ поиск Ρ‡Π΅Ρ€Π΅Π· ΠΠ°ΠΉΡ‚ΠΈΠŸΠΎΠ—Π½Π°Ρ‡Π΅Π½ΠΈΡŽ() послС сортировки
  • πŸ” Для критичСских участков ΠΊΠΎΠ΄Π° рассмотритС использованиС БоотвСтствиС вмСсто БписокЗначСний

7. Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ ошибки ΠΈ ΠΈΡ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅

Π”Π°ΠΆΠ΅ ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΈΠ½ΠΎΠ³Π΄Π° ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°ΡŽΡ‚ΡΡ с Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½Ρ‹ΠΌ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ списков Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. Π Π°Π·Π±Π΅Ρ€Ρ‘ΠΌ самыС распространённыС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΈ способы ΠΈΡ… ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ.

Ошибка 1: "ИндСкс Π²Π½Π΅ допустимого Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°" ΠΏΡ€ΠΈ использовании Π’ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ()

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π­Ρ‚Π° ошибка Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ элСмСнт ΠΏΠΎ индСксу, ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°ΡŽΡ‰Π΅ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ списка. ВсСгда провСряйтС Π³Ρ€Π°Π½ΠΈΡ†Ρ‹:
ИндСкс = 5;

Если ИндСкс <= Бписок.ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ() Π’ΠΎΠ³Π΄Π°

Бписок.Π’ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ(ИндСкс, "Новый элСмСнт");

Π˜Π½Π°Ρ‡Π΅

Бписок.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ("Новый элСмСнт"); // ДобавляСм Π² ΠΊΠΎΠ½Π΅Ρ†

ΠšΠΎΠ½Π΅Ρ†Π•ΡΠ»ΠΈ;

Ошибка 2: ИзмСнСниС списка Π²ΠΎ врСмя ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ

Если Π²Ρ‹ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ список Π² Ρ†ΠΈΠΊΠ»Π΅ Для КаТдого, это ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ пропуску элСмСнтов ΠΈΠ»ΠΈ Π·Π°Ρ†ΠΈΠΊΠ»ΠΈΠ²Π°Π½ΠΈΡŽ. РСшСниС β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» ΠΈΠ»ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΊΠΎΠΏΠΈΠ΅ΠΉ:

// ΠŸΠ»ΠΎΡ…ΠΎ (ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ элСмСнты):

Для КаТдого Π­Π»Π΅ΠΌ Из Бписок Π¦ΠΈΠΊΠ»

Если Π­Π»Π΅ΠΌ.Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ = "Π£Π΄Π°Π»ΠΈΡ‚ΡŒ" Π’ΠΎΠ³Π΄Π°

Бписок.Π£Π΄Π°Π»ΠΈΡ‚ΡŒ(Π­Π»Π΅ΠΌ);

ΠšΠΎΠ½Π΅Ρ†Π•ΡΠ»ΠΈ;

ΠšΠΎΠ½Π΅Ρ†Π¦ΠΈΠΊΠ»Π°;

// Π₯ΠΎΡ€ΠΎΡˆΠΎ (ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ»):

Для Инд = Бписок.ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ() - 1 По 0 Π¦ΠΈΠΊΠ» Π£Π±Ρ‹Π²

Если Бписок[Инд].Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ = "Π£Π΄Π°Π»ΠΈΡ‚ΡŒ" Π’ΠΎΠ³Π΄Π°

Бписок.Π£Π΄Π°Π»ΠΈΡ‚ΡŒ(Инд);

ΠšΠΎΠ½Π΅Ρ†Π•ΡΠ»ΠΈ;

ΠšΠΎΠ½Π΅Ρ†Π¦ΠΈΠΊΠ»Π°;

Ошибка 3: ΠŸΠΎΡ‚Π΅Ρ€Ρ ссылок Π½Π° элСмСнты послС измСнСния списка

ВсС ссылки Π½Π° элСмСнты списка становятся Π½Π΅Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ послС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΡ… структуру (вставка, ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅, сортировка). ВсСгда ΠΏΠΎΠ»ΡƒΡ‡Π°ΠΉΡ‚Π΅ свСТиС ссылки:

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ = Бписок[0]; // ΠŸΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ ссылку

Бписок.Π’ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ(0, "Новый"); // Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° измСнилась

// Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Π½Π΅Π²Π΅Ρ€Π½ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ!

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ = Бписок[1]; // НуТно ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π·Π°Π½ΠΎΠ²ΠΎ

πŸ’‘

ВсСгда провСряйтС Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ индСксов ΠΈ ΠΈΠ·Π±Π΅Π³Π°ΠΉΡ‚Π΅ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ списка Π²ΠΎ врСмя прямой ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ. Для слоТных ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ создавайтС Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΊΠΎΠΏΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ….

FAQ: ЧастыС вопросы ΠΏΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ со списками Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ

Как Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ элСмСнт Π² список Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, Ссли ΠΎΠ½ ΡƒΠΆΠ΅ сущСствуСт, Π½ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π΄Π°Π½Π½Ρ‹Π΅?

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡŽ ΠΠ°ΠΉΡ‚ΠΈΠŸΠΎΠ—Π½Π°Ρ‡Π΅Π½ΠΈΡŽ() ΠΈ обновлСния свойств Π½Π°ΠΉΠ΄Π΅Π½Π½ΠΎΠ³ΠΎ элСмСнта:

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ = Бписок.ΠΠ°ΠΉΡ‚ΠΈΠŸΠΎΠ—Π½Π°Ρ‡Π΅Π½ΠΈΡŽ("ИскомоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅");

Если Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ <> НСопрСдСлСно Π’ΠΎΠ³Π΄Π°

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚.ΠŸΠΎΠΌΠ΅Ρ‚ΠΊΠ° = Π˜ΡΡ‚ΠΈΠ½Π°;

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚.ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° = ΠΠΎΠ²Π°ΡΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ°;

Π˜Π½Π°Ρ‡Π΅

Бписок.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ("ИскомоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅", Π˜ΡΡ‚ΠΈΠ½Π°, ΠΠΎΠ²Π°ΡΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ°);

ΠšΠΎΠ½Π΅Ρ†Π•ΡΠ»ΠΈ;

МоТно Π»ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² список Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ элСмСнт Ρ‚ΠΈΠΏΠ° "Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°" ΠΈΠ»ΠΈ "Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ"?

Π”Π°, список Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π»ΡŽΠ±Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ слоТныС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹. ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°Π”Π°Π½Π½Ρ‹Ρ… = Новый Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°("Код, НаимСнованиС", 123, "ΠŸΡ€ΠΈΠΌΠ΅Ρ€");

Бписок.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ(Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°Π”Π°Π½Π½Ρ‹Ρ…);

Однако ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°ΠΉΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ Ρ‚Π°ΠΊΠΎΠ³ΠΎ элСмСнта Π² интСрфСйсС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚ стандартноС прСдставлСниС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, "Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°"), Π° Π½Π΅ Π΅Π³ΠΎ содСрТимоС.

Как Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ элСмСнты Π² список Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈΠ· запроса?

Π‘Π½Π°Ρ‡Π°Π»Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ запроса, Π·Π°Ρ‚Π΅ΠΌ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π² список:

Запрос = Новый Запрос;

Запрос.ВСкст = "ВЫБРАВЬ НаимСнованиС Π˜Π— Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊ.НомСнклатура";

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ = Запрос.Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ();

Бписок = Новый БписокЗначСний();

Π’Ρ‹Π±ΠΎΡ€ΠΊΠ° = Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.Π’Ρ‹Π±Ρ€Π°Ρ‚ΡŒ();

Пока Π’Ρ‹Π±ΠΎΡ€ΠΊΠ°.Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ() Π¦ΠΈΠΊΠ»

Бписок.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ(Π’Ρ‹Π±ΠΎΡ€ΠΊΠ°.НаимСнованиС);

ΠšΠΎΠ½Π΅Ρ†Π¦ΠΈΠΊΠ»Π°;

ΠŸΠΎΡ‡Π΅ΠΌΡƒ послС добавлСния элСмСнтов Π² список ΠΎΠ½ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ Π½Π΅ Π² Ρ‚ΠΎΠΌ порядкС?

Бписок Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ сохраняСт порядок добавлСния элСмСнтов, Π½ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π΅Π³ΠΎ ΠΌΠ΅Π½ΡΡ‚ΡŒ:

  • πŸ”€ ΠœΠ΅Ρ‚ΠΎΠ΄ Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ() измСняСт порядок ΠΏΠΎ Π·Π°Π΄Π°Π½Π½ΠΎΠΌΡƒ ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΡŽ
  • πŸ”€ ΠŸΡ€ΠΈ связывании со Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΎΠΌΠ€ΠΎΡ€ΠΌΡ‹ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ автоматичСская сортировка
  • πŸ”€ Π’ иСрархичСских списках Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠ΅ элСмСнты всСгда ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ Π·Π° Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΌΠΈ

Π§Ρ‚ΠΎΠ±Ρ‹ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ исходный порядок, сохранитС индСксы элСмСнтов Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌ массивС.

Как Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² список Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· Ρ„Π°ΠΉΠ»Π° (Excel, JSON)?

Для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈΠ· Excel ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ COM-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈΠ»ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ OneScript.Excel. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ для JSON:

ВСкстJSON = ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΠ’Π΅ΠΊΡΡ‚Π˜Π·Π€Π°ΠΉΠ»Π°("data.json");

Π”Π°Π½Π½Ρ‹Π΅ = JSON.ΠŸΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ(ВСкстJSON);

Бписок = Новый БписокЗначСний();

Для КаТдого Π­Π»Π΅ΠΌ Из Π”Π°Π½Π½Ρ‹Π΅ Π¦ΠΈΠΊΠ»

Бписок.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ(Π­Π»Π΅ΠΌ.НаимСнованиС);

ΠšΠΎΠ½Π΅Ρ†Π¦ΠΈΠΊΠ»Π°;

Для Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ² (>10MB) рСкомСндуСтся потоковая ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°.