The current LFSDK COM versions return an object array when asking for values from a multi-valued field.
In the past, this object used to return a length of zero if there were no actual data in any of the items in the array.
It now returns 1 as the array length, but when you try to access array object [0] (in C#), it is actually a NULL.
This is deceptive. I suggest that if there is NO data in the multi-valued field, querying the array length should return zero, not one.
Many of the applications I have written worked fine in the past, but had to be modified to ignore the fact that the SDK is "lying" that there is a value in the collection, when there is actually none.
As in:
entryFieldData = (LFFieldData) entryDoc.FieldData;
object[] objMultiVals = (object[]) entryFieldData.get_Field(tokenMultiValueFieldName);
if (objMultiVals.Length != 0)
{
// Process values here -- Fails if you try to access objMultiVals[0] -- because it is null.
}