SubsetNew (UnicodeNamedArraylist function)
Create UnicodeNamedArraylist of items matching some selection criteria (UnicodeNamedArraylist class)
This function searches the entire UnicodeNamedArraylist to find and return
all items that match a specified criterion.
The criterion is supplied by the SelectionCriterion object
that is the required SubsetNew parameter.
If no item satisfies the criterion, SubsetNew returns an empty UnicodeNamedArraylist.
Syntax
%outUniNal = uniNal:SubsetNew( selectionCriterion)
Syntax terms
- %unamraylNew
- A UnicodeNamedArraylist variable of the same type as the method UnicodeNamedArraylist (%unamrayl) to contain the items that are located by the search. If %unamraylNew is not empty, its contents are discarded before it is populated by the return items from SubsetNew.
- %unamrayl
- A UnicodeNamedArraylist object.
- criterion
- A SelectionCriterion object, which is a relational expression that is applied to a %unamrayl item value to determine whether the value satisfies the expression. The expression consists of a function, an operator, and a User Language intrinsic type (numeric, string, or Unicode) value. For example, LT(this, 91) is the criterion this < 91, where this is an identity function that simply returns the item's value. The items that satisfy this expression populate the UnicodeNamedArraylist that SubsetNew returns. The function in the criterion is a method value (a method or class member name literal, or a method variable) for a method that operates on items of the type specified on the %unamrayl declaration and that returns an intrinsic value. This is described further in "Specifying a SelectionCriterion's parameters".
Usage notes
- FindNextItem is similar to SubsetNew except that it returns just the first matching item it encounters.
Examples
In the following request, a SubsetNew call uses a selection criterion that first applies the intrinsic Length function to the collection items:
Begin %k is unicodeNamedArraylist of longstring %kk is unicodeNamedArraylist of longstring %k = new %k('§Jan':u) = 'Orion' %k('§Apr':u) = 'Leo' %k('§Mar':u) = 'Cancer' %k('§Jun':u) = 'Ursa Minor' %k('§Nov':u) = 'Andromeda' %k('§Dec':u) = 'Aries' %k('§Feb':u) = 'Canis Major' %sel is object selectionCriterion for longstring %n is float %sel = GE(length, 9) %kk = %k:subsetNew(%sel) %kk:print End
The result is:
1: §.Feb: Canis Major 2: §.Jun: Ursa Minor 3: §.Nov: Andromeda