รายการองค์ประกอบค่า 1c โครงสร้างการรวบรวมสากล
ไวยากรณ์แบบเต็ม(คลิกเพื่อขยาย)
รายการค่า
คำอธิบาย:
รายการค่าเป็นวัตถุที่ไม่ได้บันทึกไว้ในฐานข้อมูลซึ่งช่วยให้คุณสามารถสร้างชุดค่าแบบไดนามิกสำหรับการแก้ปัญหาอินเทอร์เฟซและจัดการค่าเหล่านั้น (เพิ่ม แก้ไข ลบองค์ประกอบ เรียงลำดับ) สามารถเติมค่าประเภทใดก็ได้เช่น ในรายการหนึ่ง ประเภทของค่าที่เก็บไว้อาจแตกต่างกัน ตัวอย่างหนึ่งของการใช้ออบเจ็กต์นี้คือการจัดการการเลือกเอกสารเฉพาะจากรายการเอกสารที่เป็นไปได้ที่สร้างขึ้นโดยใช้อัลกอริทึมที่ซับซ้อน
รายการคอลเลกชัน: ValueListElement
เป็นไปได้ที่วัตถุจะข้ามคอลเลกชันโดยใช้ตัวดำเนินการ สำหรับแต่ละ... จาก... รอบ. การข้ามผ่านจะเลือกองค์ประกอบของคอลเลกชัน
คุณสามารถเข้าถึงองค์ประกอบการรวบรวมโดยใช้ตัวดำเนินการ [...] ดัชนีขององค์ประกอบถูกส่งผ่านเป็นอาร์กิวเมนต์ ( นับจาก 0).
คุณสมบัติ:
วิธีการ:
นักออกแบบ:
&ขั้นตอน OnClient ExecuteCode(คำสั่ง) /// วิธีสร้างรายการค่าใน 1 วินาที 8.3, 8.2รายการ = รายการค่าใหม่; /// วิธีเพิ่มองค์ประกอบในรายการค่าใน 1 วินาที 8.3, 8.2 // เพิ่มพารามิเตอร์วิธีการ:// - ความหมาย // - ผลงาน // - ทำเครื่องหมาย (จำเป็น) // - รูปภาพ (จำเป็น)รายการ. เพิ่ม(1980, // ค่าองค์ประกอบ "ปีเกิดของวาสยา"// ผลงาน ) ; รายการ. เพิ่ม(1985, "ปีเกิดของจูเลีย") ; // ค่าสามารถมีได้หลายประเภทรายการ. Add("Polina" , "ชื่อลูก" ) ; /// วิธีแทรกองค์ประกอบลงในรายการค่าใน 1s 8.3, 8.2 // แทรกเข้าไปในตำแหน่งที่ 2 (องค์ประกอบมีหมายเลขเริ่มต้นจาก 0) // องค์ประกอบที่มีค่า 2010 และการเป็นตัวแทน // "ปีที่ลูกสาวร่วมเกิด"รายการ. ส่วนแทรก(2, 2010, "ปีที่ลูกสาวร่วมของพวกเขาเกิด") ; /// วิธีเลี่ยงองค์ประกอบของรายการค่าใน 1 วินาที 8.3, 8.2สำหรับแต่ละองค์ประกอบจากรายงานการวนรอบรายการ (Element. Representation + ": " + String(Element.Value) ) ; เอ็นด์ไซเคิล ; /// วิธีล้างรายการค่าใน 1 วินาที 8.3, 8.2รายการ. ชัดเจน() ; รายการ. เพิ่ม("วันจันทร์"); รายการ. เพิ่ม("วันอังคาร"); รายการ. เพิ่ม("วันพุธ" ) ; /// วิธีค้นหาจำนวนองค์ประกอบของรายการค่ารวมทั้ง /// รับองค์ประกอบรายการตามดัชนีใน 1 วินาที 8.3, 8.2 // นับเลขตั้งแต่เริ่มต้นสำหรับดัชนี = 0 ตามรายการ ปริมาณ() - รายงานรอบการผลิต 1 รอบ(รายการ[ดัชนี]) ; เอ็นด์ไซเคิล ; /// วิธีค้นหาองค์ประกอบรายการตามค่าใน 1 วินาที 8.3, 8.2ค่าวันอังคาร = รายการ FindByValue("วันอังคาร"); /// วิธีค้นหาดัชนีขององค์ประกอบในรายการใน 1 วินาที 8.3, 8.2รายงาน(List.Index(มูลค่าวันอังคาร)) ; // 1 เนื่องจากการกำหนดหมายเลขเริ่มต้นจากศูนย์ /// วิธีจัดเรียงรายการตามค่าใน 1 วินาที 8.3, 8.2 // คือ: วันจันทร์ วันอังคาร วันพุธรายการ. SortByValue(SortDirection.Descending); // กลายเป็น: วันพุธ วันจันทร์ วันอังคาร /// วิธีลบองค์ประกอบออกจากรายการค่าใน 1 วินาที 8.3, 8.2 // ลบองค์ประกอบแรก // พารามิเตอร์: องค์ประกอบรายการ // หรือดัชนีองค์ประกอบ// คุณสามารถทำรายการนี้ได้ ลบ(รายการ[ 0 ]) ; // หรือไม่ก็ // รายการลบ (0); /// วิธีเปลี่ยนองค์ประกอบของรายการค่าใน 1 วินาที 8.3, 8.2 // ย้ายองค์ประกอบศูนย์ไปข้างหน้าหนึ่งตำแหน่ง // คือ: วันจันทร์ วันอังคารรายการ. ย้าย(0, 1); // กลายเป็น: วันอังคารวันจันทร์ /// วิธีทำสำเนารายการใน 1 วินาที 8 ListCopy = รายการ คัดลอก() ; สี = รายการค่าใหม่; สี เพิ่ม("สีแดง" ); สี เพิ่ม("สีเขียว" ) ; สี เพิ่ม("สีฟ้า" ) ; /// วิธีอัปโหลดค่ารายการลงในอาร์เรย์ใน 1s 8.3, 8.2 ArrayColors = สี ยกเลิกการโหลดค่า() ; /// วิธีโหลดค่ารายการจากอาร์เรย์ใน 1s 8.3, 8.2สี LoadValues(อาร์เรย์สี); สิ้นสุดขั้นตอน /// วิธีทำการเลือกค่าจากรายการแบบไม่มีโหมด /// ค่าใน 1 วินาที 8.3, 8.2&ในขั้นตอนไคลเอนต์ วิธีสร้างสีที่ไม่ใช่ ModalValueSelection (คำสั่ง) = รายการค่าใหม่; สี เพิ่ม("สีแดง" ); สี เพิ่ม("สีเขียว" ) ; สี เพิ่ม("สีฟ้า" ) ; // ขั้นตอน AfterSelectingElement ถูกกำหนดไว้ด้านล่าง AlertAfterElementSelection = คำอธิบายการแจ้งเตือนใหม่ ( "หลังจากเลือกองค์ประกอบ", วัตถุนี้ ) ; สี ShowElementSelection ( การแจ้งเตือน AfterElementSelection , "เลือกสีที่คุณชื่นชอบ") ; สิ้นสุดขั้นตอน &ขั้นตอนบนไคลเอนต์หลังจากการเลือกองค์ประกอบ (องค์ประกอบ, พารามิเตอร์) ส่งออกหากองค์ประกอบ<>ไม่ได้กำหนดไว้แล้วรายงาน (Element.Value) ; สิ้นสุดถ้า ; สิ้นสุดขั้นตอน /// วิธีทำเครื่องหมายค่าแบบไม่มีโหมดจากรายการ /// ค่าใน 1 วินาที 8.3, 8.2&ในขั้นตอนของลูกค้า วิธีสร้างการทำเครื่องหมายค่าที่ไม่ใช่ Modal (คำสั่ง) สี = รายการค่าใหม่; สี เพิ่ม("สีแดง" ); สี เพิ่ม("สีเขียว" ) ; สี เพิ่ม("สีฟ้า" ) ; // ขั้นตอน AfterMarkingElements ถูกกำหนดไว้ด้านล่าง AlertAfterMarkingItems = คำอธิบายการแจ้งเตือนใหม่ ( "รายการหลังการทำเครื่องหมาย", วัตถุนี้ ) ; สี ShowTagItems( AlertAfterTagItems, "เลือกสีที่คุณชื่นชอบ") ; สี FillNotes(จริง) ; สิ้นสุดขั้นตอน &ขั้นตอนบนไคลเอ็นต์หลังจากการทำเครื่องหมายองค์ประกอบ (องค์ประกอบ, พารามิเตอร์) ส่งออกหากองค์ประกอบ<>ไม่ได้กำหนดแล้วสำหรับแต่ละสีจากองค์ประกอบรอบถ้าสี ทำเครื่องหมายแล้วรายงาน(Color.Value) ; สิ้นสุดถ้า ; เอ็นด์ไซเคิล ; สิ้นสุดถ้า ; สิ้นสุดขั้นตอน /// วิธีทำการเลือกค่ากิริยาจากรายการใน 1 วินาที 8.3, 8.2&ในขั้นตอนไคลเอนต์ วิธีสร้าง ModalValueSelection (คำสั่ง) สี = รายการค่าใหม่; สี เพิ่ม("สีแดง" ); สี เพิ่ม("สีเขียว" ) ; สี เพิ่ม("สีฟ้า" ) ; SelectColor = สี เลือกรายการ( "เลือกสีที่คุณชื่นชอบ") ; หากเลือกสี<>ไม่ได้กำหนด จากนั้นรายงาน (SelectColor.Value) ; สิ้นสุดถ้า ; สิ้นสุดขั้นตอน /// วิธีทำเครื่องหมายค่าจากรายการแบบ modally /// ค่าใน 1 วินาที 8.3, 8.2&ในขั้นตอนของลูกค้า วิธีสร้าง Modal Mark of Values (คำสั่ง) Colours = รายการค่าใหม่; สี เพิ่ม("สีแดง" ); สี เพิ่ม("สีเขียว" ) ; สี เพิ่ม("สีฟ้า" ) ; ถ้าเป็นสี. ทำเครื่องหมายรายการ( "เลือกสีที่คุณชื่นชอบ") จากนั้นสำหรับแต่ละสีจากวงจรสีถ้าเป็นสี ทำเครื่องหมายแล้วรายงาน(Color.Value) ; สิ้นสุดถ้า ; เอ็นด์ไซเคิล ; สิ้นสุดถ้า ; // นี่คือวิธีที่คุณสามารถตั้งค่าเครื่องหมายทั้งหมดในคราวเดียว // แสดงรายการเป็นค่าเฉพาะสี FillNotes(จริง) ; สิ้นสุดขั้นตอน /// ดาวน์โหลดและเรียกใช้ตัวอย่างเหล่านี้บนคอมพิวเตอร์ของคุณ |
บทความนี้เกี่ยวกับอะไร?
บทความนี้ยังคงกล่าวถึงชุดบทความ "ขั้นตอนแรกในการพัฒนา 1C" ครอบคลุมถึงหลักการทำงานกับคอลเลกชันสากล หลังจากอ่านบทความแล้ว คุณจะได้เรียนรู้:
- คอลเลกชันสากลคืออะไร และควรใช้เมื่อใดและในกรณีใด
- คอลเลกชั่นสากลทั้งหมดมีอะไรที่เหมือนกัน? คุณสามารถใช้เทคนิคใดในการทำงานกับเทคนิคทั้งหมดได้?
- อาร์เรย์คืออะไร ใช้งานอย่างไรและเมื่อใด? เขามีวิธีการอะไรบ้าง?
- ทำไมต้องใช้โครงสร้าง? แตกต่างจากอาเรย์อย่างไร?
- เมื่อใดที่คุณควรใช้รายการค่า จะแสดงบนแบบฟอร์มได้อย่างไร?
- การปฏิบัติตามข้อกำหนด – คืออะไรและจะใช้เมื่อใด ข้อดีของโครงสร้างคืออะไร?
- ตารางค่าใช้ทำอะไร? จะอธิบายโครงสร้างของมันอย่างไร? จะเพิ่ม/ลบบรรทัดได้อย่างไร? จะแสดงบนแบบฟอร์มได้อย่างไร?
- ต้นไม้แห่งคุณค่า - ใช้ทำอะไร? จะกรอกและแสดงแบบฟอร์มได้อย่างไร? จะทำงานกับมันอย่างไร?
การบังคับใช้
บทความนี้กล่าวถึงแพลตฟอร์ม 1C:Enterprise 8.3 ของรุ่นปัจจุบัน
วิธีทำงานกับคอลเลกชันสากลใน 1C
คอลเลกชันของค่าคือคอนเทนเนอร์ที่มักจะมีองค์ประกอบจำนวนเท่าใดก็ได้ อย่างไรก็ตาม มักไม่มีข้อจำกัดที่เข้มงวดเกี่ยวกับประเภทข้อมูล
คุณสามารถเพิ่มค่าให้กับคอลเลกชันทั่วไปได้ สามารถข้ามค่าทั้งหมดในคอลเลกชันได้ คอลเลกชันเหล่านี้ใช้สำหรับการประมวลผลอัลกอริธึมบางประเภทเป็นหลัก เหล่านั้น. เหล่านี้คือบางส่วน โครงสร้างแบบไดนามิกซึ่งมีอยู่ตลอดระยะเวลาของอัลกอริทึม
สิ่งสำคัญคือต้องเข้าใจว่าคอลเลกชันไม่ได้จัดเก็บไว้ในฐานข้อมูล (เราไม่ได้พูดถึงประเภทข้อมูล Value Store ซึ่งสามารถจัดเก็บข้อมูลได้เกือบทุกประเภท)
มีอยู่ ประเภทต่างๆคอลเลกชันสากล: อาร์เรย์, โครงสร้าง, การจับคู่, อาร์เรย์คงที่, ตารางค่า, ส่วนตารางฯลฯ แต่คอลเลกชันทั้งหมดมีพฤติกรรมคล้ายกัน
คอลเลกชันสามารถสร้างขึ้นเป็นผลมาจากการทำงานของฟังก์ชัน (ฟังก์ชันส่งคืนคอลเลกชันสากลเป็นค่า)
มีอยู่ คอลเลกชันใหม่ด้วยตนเองโดยการเข้าถึง Constructor และสร้างอินสแตนซ์ของคลาส
ตัวอย่างเช่น: OurArray = อาร์เรย์ใหม่;
ตัวสร้างสำหรับคอลเลกชันทั่วไปจำนวนมากได้รับการกำหนดพารามิเตอร์
ดังนั้นในตัวสร้างสำหรับ คุณสามารถระบุจำนวนสมาชิกในมิติที่เกี่ยวข้องได้ เหล่านั้น. คุณสามารถประกาศหลายมิติได้ทันที .
คำอธิบายที่สอดคล้องกันของ Constructor อยู่ในตัวช่วยไวยากรณ์
ดังนั้นด้วยการใช้พารามิเตอร์ตัวสร้าง คุณสามารถตั้งค่าพฤติกรรมที่ต้องการของวัตถุที่กำหนดได้ทันที
แต่พารามิเตอร์เป็นทางเลือก นักพัฒนาไม่สามารถตั้งค่าและกำหนดพฤติกรรมของ Array เพิ่มเติมได้ตามที่เห็นสมควร
คอลเลกชันสากลเกือบทั้งหมดสามารถสร้างขึ้นได้โดยใช้ตัวสร้าง (ข้อยกเว้นคือส่วนของตารางซึ่งทำหน้าที่เป็นอ็อบเจ็กต์การกำหนดค่า)
สำหรับคอลเลกชันสากลก็มีเช่นนี้ แนวคิดทั่วไปเช่นดัชนีและตัวเลข แต่ละองค์ประกอบของคอลเลกชันมีดัชนี ในกรณีนี้ ดัชนีจะเริ่มต้นจากศูนย์
เพื่อเข้าถึงองค์ประกอบ อาร์เรย์ของเราคุณสามารถใช้การเข้าถึงดัชนีได้ สำหรับสิ่งนี้ ดัชนีจะแสดงอยู่ในวงเล็บเหลี่ยม
ตัวอย่างเช่น, อาร์เรย์ของเรา. โปรดทราบว่าในกรณีนี้ ระบบจะส่งคืนองค์ประกอบ Array ที่มีดัชนี 3 และนี่คือองค์ประกอบที่สี่ของ Array
สำหรับคอลเลกชันบางรายการ ยังมีแนวคิดเรื่องหมายเลขบรรทัดด้วย หมายเลขบรรทัดเริ่มต้นด้วยหนึ่ง ตัวอย่างเช่น สำหรับส่วนที่เป็นตารางจะมีคุณสมบัติเป็นหมายเลขแถว สิ่งสำคัญคือต้องจำไว้ว่าหากเราทราบหมายเลขบรรทัดและต้องการเข้าถึงโดยใช้ดัชนี เราก็ควรใช้ค่าที่น้อยกว่าหมายเลขบรรทัดหนึ่งค่าเป็นดัชนี
แนวคิดของหมายเลขบรรทัดไม่มีอยู่ในคอลเลกชันทั้งหมด แต่ส่วนใหญ่จะอยู่ในคอลเลกชันที่สามารถแสดงในส่วนติดต่อผู้ใช้ได้
คอลเลกชันทั้งหมดใช้การข้ามผ่านองค์ประกอบคอลเลกชัน บายพาสสามารถทำได้สองวิธี: วงจรสำหรับและ รอบสำหรับแต่ละ.
สำหรับคอลเลกชันทั่วไปส่วนใหญ่ วิธีการที่ใช้ได้แก่ นับ จัดทำดัชนี เพิ่ม แทรก ลบ และค้นหา
Count คือฟังก์ชันที่ส่งคืนจำนวนองค์ประกอบในคอลเลกชัน สามารถใช้ก่อนรอบได้ สำหรับดังแสดงในรูป
วิธีการ Index ไม่มีอยู่สำหรับคอลเลกชันทั้งหมด แต่สำหรับคอลเลกชันที่สามารถอ้างอิงองค์ประกอบได้เท่านั้น ตัวอย่างก็คือ ตารางค่า.
ตารางค่า– นี่คือคอลเลกชันเฉพาะของแถว โดยแถวสามารถมีคอลัมน์ที่แตกต่างกันได้ ประเภทต่างๆค่านิยม
แต่ละบรรทัดแสดงถึงเอนทิตีที่เป็นอิสระ คุณสามารถรับลิงค์ได้ผ่านบรรทัดนี้คุณสามารถเข้าถึงค่าของคอลัมน์ในบรรทัดนี้
วิธีการจัดทำดัชนีช่วยให้คุณกำหนดได้ว่าดัชนีใดสอดคล้องกับแถวที่กำหนด (นั่นคือ ตำแหน่งปัจจุบันของแถวในตาราง) ค่าดัชนีเริ่มต้นที่ศูนย์
วิธีการเพิ่มค่าใหม่ให้กับ คอลเลกชันนี้มีอยู่ในคอลเลกชันสากลเกือบทุกแห่ง รูปแสดงวิธีการเติมอาร์เรย์ด้วยค่าตั้งแต่ 0 ถึง 10 ในสองวิธี
ในการเพิ่มองค์ประกอบให้กับ Array เราสามารถใช้วิธีนี้ได้ เพิ่มระบุค่าที่จะบวกในวงเล็บ ในกรณีนี้ ค่าจะถูกเพิ่มที่ส่วนท้ายของรายการ เช่น อาร์เรย์จะเพิ่มขึ้นอย่างต่อเนื่องเนื่องจากตำแหน่งสุดท้าย
อีกวิธีหนึ่งที่ช่วยให้คุณสามารถเพิ่มมูลค่าให้กับคอลเลกชันได้คือ แทรก. มันแตกต่างจากวิธีการ เพิ่มโดยคุณสามารถระบุตำแหน่งที่จะแทรกองค์ประกอบที่เพิ่มเข้าไปได้
ไวยากรณ์: แทรก (,)
พารามิเตอร์แรกระบุดัชนีที่จะแทรกค่าใหม่ เหล่านั้น. ตัวอย่างเช่น เราสามารถระบุได้ว่าแต่ละค่าควรถูกแทรกไว้ที่จุดเริ่มต้นของรายการ (วิธีที่สองในรูปด้านบน)
หากต้องการลบองค์ประกอบออกจากคอลเลกชัน ให้ใช้วิธีการ ลบ. วิธีการ Delete ระบุตามดัชนีว่าองค์ประกอบใดที่เราจะลบ
ไวยากรณ์: ลบ()
ตัวอย่างการใช้งาน: OurArray.Delete(5);
ควรสังเกตว่าสำหรับคอลเลกชันเหล่านั้นที่สตริงเป็นตัวแทนของเอนทิตีอิสระ (เช่น for ตารางค่า) เรายังสามารถใช้วิธีรับดัชนีเพื่อลบแถวนี้ในภายหลังได้
คอลเลกชันเกือบทั้งหมดมีวิธีการค้นหาค่า - หา. ค่าที่เราต้องการค้นหาจะถูกส่งผ่านไปยังเมธอด คอลเลกชันบางรายการอนุญาตให้คุณกำหนดข้อจำกัดบางประการได้
ตัวอย่างเช่นใน ตารางค่าคุณสามารถระบุแถวและคอลัมน์ที่คุณต้องการค้นหาได้
หากพบค่า วิธีการนี้จะส่งคืนดัชนีหรือสตริงที่ระบุ หากไม่พบค่า ระบบจะส่งกลับค่าประเภท ไม่ได้กำหนด. สัมพันธ์กับ Array จะส่งกลับ ดัชนีหรือค่า ไม่ได้กำหนด.
ตัวอย่างการใช้งาน: ตัวแปรของเรา = OurArray.Find(8);
คอลเลกชันสากลสามารถล้างได้อย่างรวดเร็วเช่น ลบองค์ประกอบทั้งหมดออกอย่างแน่นอน เพื่อจุดประสงค์นี้จึงใช้วิธีนี้ ชัดเจน()ซึ่งจะลบองค์ประกอบ Array แถว ตารางค่าหรือข้อมูลจากคอลเลกชันอื่นๆ
วิธีการเพิ่มเติมสำหรับ Array
วิธี บีสั่งซื้อ()ส่งกลับจำนวนองค์ประกอบลบหนึ่ง เหล่านั้น. ถ้าเราใช้ลูป สำหรับจากนั้นแทนที่จะใช้วิธีปริมาณ เราก็สามารถใช้วิธีนี้ได้ทันที ชายแดน().
โดยเฉพาะอย่างยิ่ง ตัวแปร QuantumInArray สามารถกำหนดได้แตกต่างกัน:
ปริมาณInArray = OurArray.InBorder();
จากนั้น เมื่ออธิบายวงจร ไม่ควรลบสิ่งใดออกจากตัวแปรนี้
วิธีการ Set ช่วยให้คุณสามารถกำหนดค่าให้กับองค์ประกอบ Array ตามดัชนีได้
ไวยากรณ์: ติดตั้ง(,)
ตัวอย่าง: OurArray.Set(2,8);
ทางเลือกอื่น: อาร์เรย์ของเรา = 8;
คุณสามารถใช้วิธีการสำหรับอาร์เรย์ รับสำหรับการอ่านค่าดัชนีโดยไม่ต้องใช้วงเล็บเหลี่ยม
ไวยากรณ์: รับ()
ตัวอย่าง: ตัวแปรของเรา = OurArray.Get(2);
ทางเลือกอื่น: ตัวแปรของเรา = OurArray;
โครงสร้างการรวบรวมสากล
โครงสร้าง เช่นเดียวกับอาร์เรย์ สามารถมีองค์ประกอบได้ไม่จำกัดจำนวน แต่เนื้อหาขององค์ประกอบนั้นแตกต่างจากอาร์เรย์
โครงสร้างคือคอลเลกชัน แต่ละค่าประกอบด้วยคู่ องค์ประกอบแรกของคู่เรียกว่า สำคัญ. องค์ประกอบที่สองของคู่คือ ความหมาย.
สำคัญเป็นชนิดข้อมูลสตริงที่อธิบายค่าอย่างเคร่งครัด ตัวอย่างเช่น, ไปที่กุญแจ"รหัส" สามารถสอดคล้องกับค่า 113; ไปที่กุญแจ“ชื่อ” แปลว่า “วาสยา” ค่านั้นไม่ได้อยู่ภายใต้ข้อจำกัดประเภทข้อมูล
โครงสร้างนี้ใช้งานได้สะดวกมากหากเราต้องการสร้างรายการพารามิเตอร์บางอย่าง ถ้านี้ โครงสร้างเรียกว่า โครงสร้างของเราจากนั้นเราจะอ้างอิงถึงสองค่าของมันดังนี้: OurStructure.Code และ OurStructure.Name
การเข้าถึงประเภทนี้สะดวกกว่าถ้าเรากำหนดพารามิเตอร์ทั้งหมดใน Array และเข้าถึงด้วยดัชนี
โครงสร้างทำให้โค้ดโปรแกรมอ่านได้ (เข้าใจได้) โครงสร้างถูกใช้ค่อนข้างบ่อย บ่อยกว่าอาร์เรย์มาก
ใช้เพื่ออธิบายพารามิเตอร์บางตัว ซึ่งมักจะมีเพียงพอ จำนวนมากในอัลกอริธึมทั้งหมด
นอกจากนี้ โครงสร้างจะถูกใช้หากขั้นตอนและฟังก์ชันมีพารามิเตอร์ที่ส่งผ่านจำนวนมาก
จากนั้นจะสะดวกกว่ามากในการเขียนพารามิเตอร์ทั้งหมดลงในโครงสร้างแล้วส่งต่อ เหล่านั้น. พารามิเตอร์ของขั้นตอนและฟังก์ชันเป็นแบบ "บรรจุ"
แยกกันก็ควรสังเกตว่าเป็น สำคัญไม่มีบรรทัดใดๆ ที่สามารถปรากฏในโครงสร้างได้อย่างแน่นอน มีข้อจำกัดบางประการ
สำคัญควรทำหน้าที่เป็นตัวระบุ ซึ่งหมายความว่าใน คลูเช่จะต้องไม่มีการเว้นวรรคและไม่สามารถขึ้นต้นด้วยตัวเลขได้
การเริ่มต้นที่ยอมรับได้ สำคัญด้วยตัวอักษรหรือขีดล่าง ดังนั้น, สำคัญต้องเป็นไปตามข้อกำหนดสำหรับการสร้างตัวระบุ
ให้เราสังเกตว่าโครงสร้างแตกต่างจากอาร์เรย์อย่างไร มีวิธีการในโครงสร้าง แทรกมีสองวิธีในการแทรกใน Array: แทรก(ไปยังตำแหน่งที่แน่นอน) และ เพิ่ม(ไปยังส่วนท้ายของรายการ) ในอาร์เรย์ องค์ประกอบทั้งหมดจะถูกเรียงลำดับ
โครงสร้างเป็นชุดที่ไม่เป็นระเบียบ นี่คือเหตุผลว่าทำไมจึงมีเพียงวิธีการแทรกสำหรับโครงสร้างเท่านั้น
ค่าไม่ได้ถูกแทรกไว้ที่ตำแหน่งเฉพาะ แต่อยู่ในชุดที่ระบุ ไม่สามารถเข้าถึงโครงสร้างด้วยดัชนี เช่นเดียวกับคอลเลกชันทั่วไปอื่นๆ
องค์ประกอบโครงสร้างเข้าถึงได้โดยใช้ชื่อคีย์เท่านั้น อย่างไรก็ตาม For Each loop ยังใช้ได้กับโครงสร้างด้วย แต่คุณไม่ควรยึดถือลำดับขององค์ประกอบโครงสร้าง
โครงสร้างถูกสร้างขึ้นในลักษณะเดียวกับคอลเลกชันทั่วไปอื่นๆ โดยใช้ตัวสร้างใหม่ โดยระบุประเภทข้อมูล โครงสร้าง
เช่นเดียวกับอาร์เรย์ ตัวสร้างของโครงสร้างสามารถมีพารามิเตอร์ได้ เหล่านั้น. เป็นไปได้ที่จะอธิบายเนื้อหาของโครงสร้างโดยใช้ตัวสร้าง
ต่างจากอาร์เรย์ที่คุณสามารถระบุจำนวนองค์ประกอบสำหรับทุกมิติได้อย่างง่ายดาย ในโครงสร้างคุณสามารถระบุเนื้อหาได้เอง
ตัวอย่างเช่น: โครงสร้างของเรา = โครงสร้างใหม่ (“รหัส, ชื่อ”, 133, “วาสยา”);
คั่นด้วยเครื่องหมายจุลภาค ชื่อของคีย์จะถูกแสดงรายการก่อน จากนั้นจึงระบุค่าของพารามิเตอร์ในลำดับเดียวกัน
มีวิธีการเพิ่มค่าใหม่ให้กับโครงสร้าง แทรกซึ่งจะแทรกคู่ใหม่ (คีย์และค่า)
ตัวอย่างเช่น: OurStructure.Insert(“สมาชิกในครอบครัว”,3);
โครงสร้างมีลักษณะเป็นอีกวิธีหนึ่งที่ใช้ค่อนข้างบ่อย นี่คือวิธีการ คุณสมบัติ.
เมื่อใช้วิธีการนี้ คุณจะเข้าใจได้ว่ามีองค์ประกอบในโครงสร้างนี้ที่คีย์มีชื่อเช่นนั้นหรือไม่
หากมีองค์ประกอบดังกล่าว ระบบจะส่งคืนค่า True มิฉะนั้นจะคืนค่าเป็น False
ตัวอย่างเช่น การแสดงออก โครงสร้างของเราทรัพย์สิน (“สมาชิกในครอบครัว”)จะเท่ากับค่า True วิธีนี้ใช้ค่อนข้างบ่อยเมื่อวิเคราะห์โครงสร้าง
เช่นเดียวกับคอลเลกชันสากลอื่นๆ คุณสามารถเข้าถึงคุณสมบัติของโครงสร้างตามดัชนีได้ แต่ดัชนีสำหรับโครงสร้างเป็นค่าสตริง
ตัวอย่างเช่น: รายงาน (โครงสร้างของเรา ["สมาชิกในครอบครัว"]);
อย่างไรก็ตาม เราไม่ควรลืมว่าโครงสร้างเป็นชุดของวัตถุที่ไม่เรียงลำดับ ซึ่งเป็นเหตุผลว่าทำไมการเข้าถึงด้วยดัชนี 0, 1, 2 จึงเป็นที่ยอมรับไม่ได้
คอลเลกชันทั่วไป รายการของค่า
รายการค่าเป็นรายการเชิงเส้นขององค์ประกอบประเภทข้อมูลใดๆ
แต่ละองค์ประกอบประกอบด้วยค่าหลายค่า แผนผังรายการค่าสามารถแสดงเป็นรายการที่มีสี่คอลัมน์ได้
คอลัมน์แรก - เครื่องหมาย. มีชนิดข้อมูลบูลีนและอนุญาตให้ผู้ใช้ทำเครื่องหมายหรือยกเลิกการทำเครื่องหมายในช่อง
อีกคอลัมน์หนึ่งเป็นรูปภาพที่สามารถนำเสนอองค์ประกอบนี้ด้วยสายตาได้เช่น จับคู่สตริงนี้กับรูปภาพ
คอลัมน์ที่สามคือค่าที่เก็บไว้นั่นคือ นี่คือข้อมูลประเภทใดก็ได้ และอาจแตกต่างกันในบรรทัดที่ต่างกัน
คอลัมน์ที่สี่คือการนำเสนอเช่น นี่คือคำอธิบายสตริงชนิดหนึ่งของค่าที่กำหนด มุมมองจะปรากฏต่อผู้ใช้เมื่อเขาดูองค์ประกอบนี้ ในกรณีนี้ หากไม่ได้ระบุการเป็นตัวแทน ระบบจะพยายามรับการแทนสำหรับองค์ประกอบที่อยู่ในตำแหน่งนี้
รายการค่า– นี่คือวัตถุที่ผู้ใช้สามารถทำงานด้วยสายตาได้ เหล่านั้น. รายการค่าสามารถแสดงบนแบบฟอร์มได้
ผู้ใช้สามารถดำเนินการบางอย่างได้ นอกจาก, รายการค่าสามารถอนุมานได้อย่างอิสระโดยใช้วิธีต่างๆ เช่น แสดงบนหน้าจอในบางสาขาของอัลกอริธึม (ยกเว้น รหัสเซิร์ฟเวอร์) เพื่อให้ผู้ใช้เลือกบรรทัดหรือทำเครื่องหมายบางช่อง
เราจะพบ รายการค่าในผู้ช่วยซิแท็กซ์ ตัวสร้าง รายการค่าไม่กำหนดพารามิเตอร์ (คุณไม่สามารถตั้งค่าเริ่มต้นใดๆ ได้)
มีวิธีต่างๆ เช่น:
- แทรก(,) ;
- เพิ่ม(,);
- ปริมาณ();
- ดัชนี().
นอกจากนี้ยังมีวิธีพิเศษ เช่น ยกเลิกการโหลดค่า(). สิ่งนี้จะสร้างอาร์เรย์ที่จะคัดลอกรายการค่าลงไป ตัวอย่างเช่น:
อาร์เรย์ขององค์ประกอบ = รายการ PriceTypes.OutloadValues();
นอกจากนี้ยังมีวิธีย้อนกลับ:
ListPriceTypes.LoadValues(ArrayItems);
มีวิธีการค้นหา:
FindByValue(); FindByIdentifier()
มีวิธีคัดลอก:
ListCopy = PriceTypeList.Copy();
วิธีการนี้มีวัตถุประสงค์เพื่อทำการแก้ไขบางอย่างกับสำเนา
มีวิธีดังนี้:
เรียงลำดับตามค่า();
เรียงลำดับตามมุมมอง()
วิธีการ เลือกรายการ(,)และ ทำเครื่องหมายรายการ()เรียกกล่องโต้ตอบโมดอลที่หยุดการทำงานของอัลกอริทึมจนกว่าผู้ใช้จะปิดหน้าต่าง
เมื่อต้องการใช้วิธีการเหล่านี้ในคุณสมบัติการกำหนดค่า โหมดการใช้กิริยาจะต้องตั้งค่าเป็น ใช้.
โค้ดตัวอย่างที่เรียกจากโมดูลแอปพลิเคชันที่ได้รับการจัดการ:
แสดงรหัสนี้ในโหมดผู้ใช้ (กล่องโต้ตอบโมดอล)
ด้านล่าง รายการค่าใช้เป็นประเภทข้อมูลที่มีอยู่สำหรับแอตทริบิวต์ของแบบฟอร์ม เราสร้างแอตทริบิวต์ใหม่สำหรับแบบฟอร์มการประมวลผลและกำหนดประเภทของแบบฟอร์ม รายการค่าและแสดงบนแบบฟอร์ม
เราสร้าง ทีมใหม่ กรอกของขวัญให้โอนไปยังแบบฟอร์มและกำหนดตัวจัดการการดำเนินการสำหรับแบบฟอร์ม
ในโหมดผู้ใช้ เมื่อคุณคลิกปุ่มกรอกของขวัญในแบบฟอร์มการประมวลผล รายการที่เสร็จสมบูรณ์จะปรากฏขึ้น
หากต้องการคุณสามารถแก้ไขรายการได้: สามารถเพิ่มองค์ประกอบบางส่วนได้, บางส่วนสามารถลบออกได้
การปฏิบัติตามข้อกำหนดการรวบรวมอเนกประสงค์
คอลเลกชั่นนี้มีความคล้ายคลึงกับ โครงสร้าง. เช่นเดียวกับโครงสร้าง การแมปคือชุดของค่าที่ประกอบด้วยคีย์และค่านั้นเอง
ข้อแตกต่างหลักคือสามารถระบุประเภทข้อมูลใดก็ได้เป็นคีย์และค่าก็ได้ ในมุมมองของคุณลักษณะนี้ จำเป็นต้องเข้าถึงค่าการจับคู่ตามดัชนี ค่าคีย์จะถูกระบุเป็นค่าดัชนี
คีย์อาจเป็นประเภทข้อมูลอื่นที่ไม่ใช่สตริง คุณสมบัติและวิธีการทำงานด้วย Compliance เกือบจะเหมือนกับคุณสมบัติของโครงสร้าง
ตัวสร้างการปฏิบัติตามข้อกำหนดซึ่งแตกต่างจากโครงสร้างไม่มีความสามารถในการระบุพารามิเตอร์
ตัวอย่างการใช้งาน:
การติดต่อสื่อสารสะดวกในการใช้งานเมื่อคุณต้องการเชื่อมต่อโครงสร้างทั้งสองแบบ ตัวอย่างเช่น แต่ละแถวในส่วนตารางจะต้องจับคู่กับแถวจากตารางค่า
ในกรณีนี้ แถวส่วนของตารางจะถูกใช้เป็นคีย์การจับคู่ และค่าที่เกี่ยวข้องจะถูกระบุ
เมื่อแทรกองค์ประกอบลงในคอลเลกชัน Match นอกเหนือจากวิธีการ แทรก(,)อีกวิธีในการแทรกค่าคือการใช้ตัวดำเนินการมอบหมายปกติ
ตัวอย่างเช่น: การแข่งขันของเรา = การแข่งขันใหม่;
นัด = 999;
เหล่านั้น. หากไม่มีองค์ประกอบอยู่ในคอลเลกชัน องค์ประกอบนั้นจะถูกเพิ่มโดยใช้ตัวดำเนินการมอบหมาย และหากมีอยู่ องค์ประกอบนั้นจะได้รับการอัปเดต
สิ่งนี้ตรงกันข้ามกับโครงสร้าง
ตารางค่านิยมของคอลเลกชันสากล
ตารางค่าคือตารางที่มีจำนวนแถวและคอลัมน์ตามต้องการ จุดตัดสามารถเก็บค่าของข้อมูลชนิดใดก็ได้ หากจำเป็น คุณสามารถพิมพ์คอลัมน์ได้ เช่น คุณสามารถกำหนดได้ว่าคอลัมน์ใดจะเก็บข้อมูลประเภทใด
คุณสามารถปล่อยให้คอลัมน์ไม่ถูกพิมพ์ จากนั้นค่าประเภทต่างๆ จะถูกจัดเก็บไว้ในคอลัมน์เดียวในแถวที่ต่างกัน
ความแตกต่าง ตารางค่าจากอาร์เรย์สองมิติ:
- นี่คือวัตถุที่ผู้ใช้สามารถใช้งานได้ (สามารถแสดงตารางค่าบนหน้าจอผู้ใช้สามารถกรอกและสามารถอ่านข้อมูลที่ป้อนได้)
- การสร้างดัชนีเพื่อการค้นหาที่รวดเร็ว
- การโคลน เติมค่าบางคอลัมน์ให้เต็มคอลัมน์ อัปโหลดคอลัมน์ทั้งหมดไปยังอาร์เรย์
ตารางค่าใช้เป็นบัฟเฟอร์การจัดเก็บข้อมูลชนิดหนึ่ง ตารางค่าถูกส่งคืนและยอมรับเป็นพารามิเตอร์โดยวิธีการของระบบหลายวิธี คุณสามารถสร้างแบบสอบถามกับตารางค่าได้
ดังนั้น, ตารางค่าประกอบด้วยชุดแถวและชุดคอลัมน์ ทั้งแถวและคอลัมน์เป็นคอลเลกชัน
เหล่านั้น. ภายในคอลเลกชัน ตารางค่ามีอีกสองคอลเลกชัน ลองหันไปหาผู้ช่วยไวยากรณ์แล้วค้นหา ตารางค่า.
ประเภทข้อมูลที่รองรับ: ตัวมันเอง ตารางค่าซึ่งประกอบด้วยสตริง แต่ละแถวจะแสดงด้วยประเภทข้อมูล ค่าตารางแถวซึ่งมีคุณสมบัติและวิธีการเป็นของตัวเอง มีอยู่ คอลเลกชันของค่าคอลัมน์ของตารางยังมีคุณสมบัติบางอย่าง
จุดสำคัญ! ขั้นตอนการสร้าง ตารางค่าจะต้องคอมไพล์ &OnServer
ก่อนที่คุณจะเริ่มทำงานด้วย ตารางค่าคุณต้องพิจารณาว่าจะมีคอลัมน์ใด (เช่น สร้างคอลัมน์เหล่านั้น) ไวยากรณ์:
เพิ่ม(,)
(ไม่จำเป็น)
ประเภท: สตริง.
(ไม่จำเป็น)
ประเภท: คำอธิบายประเภท
(ไม่จำเป็น)
ประเภท: สตริง.
(ไม่จำเป็น)
ประเภท: หมายเลข.
ตัวอย่างเช่น:
เพื่อเรียกโพรซีเดอร์นี้เราจะใช้คำสั่ง
ในคำอธิบาย ตารางค่าองค์ประกอบของคอลเลกชันได้อย่างแม่นยำ ค่าตารางแถว.
ต่างจากคอลัมน์ที่ประกอบด้วยเฉพาะคุณสมบัติ (ชื่อ ประเภท ส่วนหัว ความกว้าง) ในหน่วยนิ้ว ค่าตารางแถวมีทั้งคุณสมบัติ (เข้าถึงด้วยชื่อคอลัมน์) และเมธอด (คุณสามารถรับและตั้งค่าได้ ทำงานร่วมกับเจ้าของ)
เพื่อเพิ่ม บรรทัดใหม่ไปที่ตารางคุณต้องใช้วิธีการอย่างใดอย่างหนึ่ง เพิ่ม(), หรือ แทรก(). ในกรณีที่สอง คุณควรระบุว่าควรวางบรรทัดที่ต้องการในตำแหน่งใด
ในการกำหนดค่าให้กับคอลัมน์ เราใช้จุดเพื่อเข้าถึงชื่อคอลัมน์หรือดัชนี (โดยใช้วงเล็บเหลี่ยม)
สำหรับการกรอก ตารางค่าสามารถใช้วิธีการต่อไปนี้:
ชัดเจน()– เพื่อลบแถวทั้งหมดออกจาก ตารางค่า.
เติมค่า(,)– ให้คุณเติมคอลัมน์ทั้งหมดหรือคอลัมน์ที่เลือกด้วยค่าเดียว
โหลดคอลัมน์(,)– โหลดคอลัมน์จากอาร์เรย์
ยกเลิกการโหลดคอลัมน์()– ยกเลิกการโหลดคอลัมน์ลงในอาร์เรย์
สองวิธีสุดท้ายนั้นสะดวกในการใช้งานเมื่อคุณต้องการถ่ายโอนคอลัมน์จากตารางค่าหนึ่งไปยังอีกตารางหนึ่ง
สำเนา(,)– ช่วยให้คุณสร้างตารางใหม่ตามตารางที่มีอยู่ ตารางค่าและไม่ใช่ทุกแถวและทุกคอลัมน์ แต่มีเพียงบางแถวเท่านั้น ค่าส่งคืน – ตารางค่า.
คุณสามารถคัดลอกโครงสร้างได้ ตารางค่า. มีวิธีที่สอดคล้องกันสำหรับสิ่งนี้ คัดลอกคอลัมน์(). เราจะได้อันเปล่าๆ ตารางค่าด้วยโครงสร้างที่ต้องการ
ใน ตารางค่ามีวิธีหนึ่ง ทั้งหมด(). คุณสามารถระบุคอลัมน์ที่คุณต้องการรวมค่าตัวเลขได้ สัมพันธ์กับโค้ดที่แสดงก่อนหน้านี้ใน Tableau คุณสามารถคำนวณค่าได้: TK.Total (“จำนวน”).
ใน ตารางค่าเป็นไปได้ที่จะจัดกลุ่ม (ยุบ) ค่าตัวเลขด้วยค่าที่เหมือนกันของบางคอลัมน์โดยใช้วิธีการ ทรุด(,).
สัมพันธ์กับโค้ดที่แสดงก่อนหน้านี้ใน Tableau คุณสามารถคำนวณค่าได้: TK.Collapse("วันในสัปดาห์", "จำนวน")
ตารางค่าสามารถแสดงบนหน้าจอผู้ใช้เพื่อให้คุณสามารถดำเนินการใด ๆ กับมันได้ แต่ไม่เหมือน รายการค่าคุณไม่สามารถเรียกตารางบนหน้าจอจากโค้ดโปรแกรมได้
เพื่อแสดงผล ตารางค่าบนหน้าจอ ให้สร้างแอตทริบิวต์ของฟอร์มและกำหนดประเภทข้อมูลให้กับมัน ตารางค่า.
หลังจากนั้นควรแสดงตารางผลลัพธ์ในแบบฟอร์ม
ในโมดูลแบบฟอร์มที่ส่วนท้ายของอัลกอริทึมที่คอมไพล์ไว้ก่อนหน้านี้ (ในขั้นตอนการสร้างตารางค่า) คุณควรเพิ่ม:
ValueInFormData(TK, ตาราง);
คอลเลกชันสากล ต้นไม้แห่งคุณค่า
คอลเลกชันสากลที่คล้ายกันมาก ตารางค่า. ความแตกต่างจากตารางคือแถวของต้นไม้สามารถรองซึ่งกันและกันได้เช่น ลำดับชั้นบางอย่างอาจเกิดขึ้นได้
สิ่งนี้สามารถสะท้อนบนหน้าจอได้เช่นกัน แผนผังคุณค่าประกอบด้วยชุดของแถวและชุดของคอลัมน์อย่างชัดเจน มีคุณสมบัติสองประการในแผนผัง: แถวและคอลัมน์
เนื่องจากแถวสามารถอยู่ในลำดับรองซึ่งกันและกัน แต่ละแถวจึงสามารถมีพาเรนต์ได้ เช่นเดียวกับแถวรองด้วย
มาสร้างคำสั่ง Tree ที่เกี่ยวข้องและขั้นตอนการประมวลผลกัน
มาสร้างกันเถอะ โดยมีแถวหลักหนึ่งแถวและแถวรองสองแถว
มาสร้างแอตทริบิวต์ของแบบฟอร์มกันดีกว่า เดอร์ซน(ชนิดข้อมูล – ทรีค่า)
สำหรับแอตทริบิวต์นี้ เราจะสร้างคอลัมน์ปีและเดือน
ย้ายองค์ประกอบที่เกี่ยวข้อง เดอร์ซนบนแบบฟอร์ม
ในตอนท้าย ขั้นตอน TreeOnServer()มาเพิ่ม:
ValueInFormData(TreeZn, DerZn);
เรามาตรวจสอบสิ่งที่เกิดขึ้นในโหมดผู้ใช้กันดีกว่า
การใช้ปุ่ม เพิ่มคุณสามารถเพิ่มบรรทัดใหม่ได้ พวกเขายังสามารถสร้างลำดับชั้นได้
ในการสำรวจองค์ประกอบทั้งหมดของแผนผังคุณค่า เราจำเป็นต้องใช้การเรียกซ้ำ เช่น เรียกขั้นตอนจากตัวมันเอง ตัวอย่างเช่น การประมวลผลแผนผังค่าอาจมีลักษณะดังนี้:
นี่เป็นการสรุปความคุ้นเคยครั้งแรกของเรากับคอลเลกชันสากล
ในบทความถัดไป เราจะดูว่ากลไกสำคัญใดที่นักพัฒนาสามารถใช้เพื่อทำให้การเข้าถึงองค์ประกอบไดเร็กทอรีจากโค้ดโปรแกรมง่ายขึ้น
ในหน่วยนี้เราจะมาทำความรู้จักกับประเภทข้อมูลใหม่ของภาษา 1C ที่เรียกว่า รายการค่า
รายการค่าเป็นอาร์เรย์แต่มีความสามารถที่ยอดเยี่ยม และถ้าเป็นเช่นนั้น มันก็เป็นการรวบรวมข้อมูลด้วย และคุณสามารถใส่ชุดตัวเลขลงไปได้:
// สร้างรายการค่า
รายการเพิ่ม(23);
จนถึงตอนนี้ทุกอย่างดูเหมือนอาร์เรย์มากใช่ไหม แต่ขอเดินหน้าต่อไป หากต้องการแสดงตัวเลขเหล่านี้ให้ผู้ใช้เห็น เราเขียนว่า:
// วนซ้ำแต่ละองค์ประกอบของรายการสำหรับแต่ละองค์ประกอบจากรายการ รายงานวนซ้ำ (Element.Value);
// แสดงค่าขององค์ประกอบ EndCycle;
และนี่คือข้อแตกต่างประการแรก องค์ประกอบของอาร์เรย์ปกติคือตัวเลขนั่นเอง และเข้าถึงค่าปัจจุบันขององค์ประกอบ รายการเราใช้ตัวเลือกนี้ ความหมายโดยใช้การก่อสร้าง องค์ประกอบ. ความหมาย.
มาดูคุณสมบัติเพิ่มเติมบางอย่างกัน ค่านิยม
จัดเรียงได้
ตัวอย่างเช่น เราสามารถจัดเรียงรายการค่าต่างๆ ได้อย่างง่ายดาย รายการสามารถทำได้ด้วยตัวเอง:
List.SortByValue(SortDirection.Age); ในกรณีของอาร์เรย์ปกติ เราจะต้องใช้อัลกอริธึมการเรียงลำดับอย่างใดอย่างหนึ่ง (เช่น "บับเบิ้ล")
สามารถค้นหาได้
รายการค่าสามารถค้นหาองค์ประกอบได้ด้วยตัวเอง สมมติว่าเราต้องการทราบว่ามีตัวเลขที่ผู้ใช้ป้อนอยู่ในรายการของเราหรือไม่:
ใส่หมายเลข(หมายเลข); // ป้อนตัวเลขจากผู้ใช้ FoundElement = List FindByValue(ตัวเลข);
หาก FoundItem = ไม่ได้กำหนด ดังนั้น OpenValue("ไม่พบหมายเลข " + หมายเลข + " ในรายการ!"); มิฉะนั้น
OpenValue("Number " + Number + " อยู่ในรายการ นี่คือ:" + FoundElement.Value);
สิ้นสุดถ้า; รายการค่า
รองรับการแทรกและการลบ
รายการค่าต่างๆ เช่น อาร์เรย์ รองรับการแทรกและการลบองค์ประกอบ:
รายการ. แทรก(0, 1,000);
// ใส่หลักพันที่จุดเริ่มต้นของรายการ List.Delete(O); // และลบออกจากรายการทันที แทรก(List.Quantity(), 13);
// ใส่ 13 ที่ท้ายรายการ Report(List[List.Quantity() - 1]);
// แสดงองค์ประกอบสุดท้ายของรายการ (13)
รองรับวงเล็บเหลี่ยม
ตามที่คุณเข้าใจแล้ว การกำหนดหมายเลขขององค์ประกอบรายการจะเริ่มต้นจากศูนย์ และเราสามารถเข้าถึงองค์ประกอบใดๆ ด้วยดัชนีโดยใช้วงเล็บเหลี่ยม:
รายงาน (รายการค่า); // แสดงองค์ประกอบที่สองของรายการ ดังนั้น เราสามารถดูองค์ประกอบทั้งหมดของรายการได้ดังนี้:
สำหรับ A = 0 โดย List.Quantity() - 1 รายงานลูป (List[A].Value);
สิ้นสุดรอบ;
สามารถสร้างสำเนาของตัวเองได้
รายการค่ามีคุณสมบัติที่ยอดเยี่ยม - สามารถสร้างสำเนาของตัวเองได้:
ListCopy = รายการ.คัดลอก();
// ทำสำเนาของรายการ // ตอนนี้เราสามารถเปลี่ยนสำเนาของรายการได้อย่างปลอดภัย // ในขณะที่รายการดั้งเดิมจะไม่เปลี่ยนสำเนาของรายการ ค่า = 123456;
สามารถแปลงเป็นอาร์เรย์ได้
และสุดท้าย คุณสามารถดัมพ์องค์ประกอบทั้งหมดของรายการลงในอาร์เรย์ได้อย่างง่ายดายเมื่อใดก็ได้:
ArrayNumbers = รายการ ยกเลิกการโหลดค่า();
//ทิ้งลงในอาร์เรย์
สำหรับ A = 0 โดย ArrayNumber.Quantity() - 1 รอบ
รายงาน (ArrayNumbers[A]); // ไม่จำเป็นต้องระบุ // ค่าตัวเลือก
สิ้นสุดรอบ;
เพื่อฝึกฝนและรวบรวมเนื้อหาของหน่วยนี้ ขอแนะนำให้ทำภารกิจต่อไปนี้ให้เสร็จสิ้น
จำเป็นต้องป้อนตัวเลข 5 ตัวจากผู้ใช้ ค้นหาตัวเลขที่ใหญ่ที่สุดและเล็กที่สุดแล้วแสดงให้ผู้ใช้เห็น โซลูชันต้องใช้รายการค่า
สารละลาย
รายการ = รายการค่าใหม่;
// สร้างรายการค่าสำหรับ A = 1 ถึง 5 หมายเลขรอบ = 0;
ใส่หมายเลข(หมายเลข); // ป้อนตัวเลขจากรายการผู้ใช้เพิ่ม (หมายเลข); // และเพิ่มเข้าไปในรายการ EndCycle; // และต่อ ๆ ไป 5 ครั้ง
// เรียงลำดับรายการตัวเลข
รายการ. จัดเรียงตามค่า(SortDirection.Age);
// หลังจากการเรียงลำดับ องค์ประกอบแรกของรายการคือ // องค์ประกอบที่เล็กที่สุด และองค์ประกอบสุดท้ายคือ OpenValue ที่ใหญ่ที่สุด("องค์ประกอบที่เล็กที่สุด" + รายการ +
" และที่ใหญ่ที่สุด " + List[List.Quantity() - 1]);