lookup


Description:

[ Version ( since = "2.28" ) ]
public SequenceIter<G> lookup (G data, CompareDataFunc<G> cmp_func)

Returns an iterator pointing to the position of the first item found equal to data according to cmp_func and cmp_data.

If more than one item is equal, it is not guaranteed that it is the first which is returned. In that case, you can use next and prev to get others.

cmp_func is called with two items of the this, and cmp_data. It should return 0 if the items are equal, a negative value if the first item comes before the second, and a positive value if the second item comes before the first.

This function will fail if the data contained in the sequence is unsorted.

Example: Lookup:

public static int main (string[] args) {
Sequence<string> seq = new Sequence<string> ();
// sorted data:
seq.append ("1. Lorem");
seq.append ("2. ipsum");
seq.append ("3. dolor");
seq.append ("4. sit");
seq.append ("5. amet");

SequenceIter<string> iter = seq.lookup ("3. dolor", (a, b) => {
return strcmp (a, b);
});

assert (iter != null);

// Output: ``3. dolor``
print ("%s\n", iter.get ());
return 0;
}

valac --pkg glib-2.0 GLib.Sequence.lookup.vala

Parameters:

this

a Sequence

data

data to look up

cmp_func

the function used to compare items in the sequence

cmp_data

user data passed to cmp_func

Returns:

an SequenceIter pointing to the position of the first item found equal to data according to cmp_func and cmp_data, or null if no such item exists