IDL_Container::Equals

The IDL_Container::Equals function method tests the value of each item in a container against an input value and returns true (1) if the specified item is equal to that value, or false (0) otherwise.

Note: The IDL_Container::Equals method is only available for containers of pointers. If you try to use the method on a container of objects then an error will be issued.

Example

p = IDL_Container()

; Add pointers to 100 random numbers between 0 and 9.

FOR i=0,99 DO p.Add, PTR_NEW(FIX(RANDOMU(seed)*10))

 

; Locate which items are equal to the value 5.

match = p.Equals(5)

PRINT, WHERE(match)

IDL prints:

0 26 37 42 46 47 52 54 58 77 93 97

Syntax

Result = Obj->[IDL_Container::]Equals( Value )

Return Value

A byte array of length equal to the number of items in the container. Each element will contain the value 1 if the corresponding container item is equal to Value, or a 0 if the item is not equal.

Arguments

Value

A scalar or array of any simple data type (numbers or strings). The ::Equals method loops through each item in the container, and uses ARRAY_EQUAL to test the item's value against the input Value. For each item in the container, the following rules are used:

Value Item value Result
Scalar Scalar True if the values are equal.
Scalar Array True if every element of the array equals Value.
Array Scalar True if every element of Value equals the item value.
Array Array True if both arrays are the same length and corresponding elements are equal.

Note: If the types of the two values are different, the type of the least precise is converted to that of the most precise before comparing.

Keywords

None.

Version History

8.4

Introduced

See Also

ARRAY_EQUAL, IDL_Container::Add, IDL_Container::Count, IDL_Container::Get, IDL_Container::IsContained, IDL_Container::Move, IDL_Container::Remove