 # count(list)

Operator Type:

Operator Scope of Action:

Operator Purpose:

Operator Altered:

Function   [other Function type actions]

List   [operators of similar scope]

Mathematical   [other Mathematical operators]

Baseline

count(list)

The function count() counts the Number of discrete items in the specified List or Set data type attribute.

NOTE: It is recommended and generally easier to use List/Set.count (or alternatively List/Set.size).

count(listAttribute)

The listAttribute argument (List or Set) is evaluated so can use, \$Attribute(note) or more complex expressions to get data - as long as the result is a list-based attribute (List or Set data types).

For example if \$KeyAttributes for the current note is "Color;Color2;NameFont" then the code

`count(\$KeyAttributes)`

is effectively

`count("Color;Color2;NameFont")`

and not surprisingly returns 3. Note that the count is not all unique values for the attribute across the whole TBX - scope is restricted to 'this' note or another nominated note. Specimen usage:

`count(\$KeyAttributes)`

`count(\$KeyAttributes(some other note))`

To use count() with a list of items that are attributes or expressions, use list():

Works: `\$MyNumber = count(list(4+2,9+6))` (output: 2)

For more complex examples, where list items are action code expressions, it may be necessary to use eval() to wrap each list item expression e.g. `list(eval(expressionA),eval(expressionB))`.

Examples

The following is a trivial example (given we could use \$ChildCount instead) but shows how count can be used in a more subtle way:

`\$MyNumber = count(collect(children,\$Name))`

The result of collect is a List, in this case a number of note titles. count(list) will return the number of values in the list (including duplicates). To get a de-duped count, chain the `.unique` function to the list reference inside `count()`:

`\$MyNumber = count(collect(children,\$Name).unique)`