llList2List
list llList2List(list ListVariable, integer Start, integer End)Returns a subset of entries from ListVariable, in a range specified by the Start and End indicies (inclusive).
Using negative numbers for Start and/or End causes the index to count backwards from the length of the string, so 0, -1 would capture the entire string.
If Start is greater than End, the sub string is the exclusion of the entries.
Parameters
-
ListVariable(list) -
Start(integer) -
End(integer)
Basic List Slicing
Section titled “Basic List Slicing”list numbers = [1, 2, 3, 4, 5];default{ state_entry() { integer index = llListFindList(numbers, [3]); if (index != -1) { list three_four = llList2List(numbers, index, index + 1); llOwnerSay(llDumpList2String(three_four, ",")); // Object: 3,4 } }}Handling Out-of-Order Indices
Section titled “Handling Out-of-Order Indices”default{ state_entry() { //as shown below, there is no way to achieve a "wraparound" order of list elements [8,9,0,1]
list NUMBERS = [0,1,2,3,4,5,6,7,8,9]; list L2L; L2L = llList2List(NUMBERS, 8, 1); // [0,1,8,9] L2L = llList2List(NUMBERS, 8,-9); // [0,1,8,9] L2L = llList2List(NUMBERS,-2,-9); // [0,1,8,9] L2L = llList2List(NUMBERS,-2, 1); // [0,1,8,9] }}When Start is greater than End, the function returns the exclusion of the entries between them (instead of a wraparound). There is no built-in way to achieve a wraparound order of list elements using this function alone.