Beispiel #1
0
        /// <inheritdoc/>
        public void Refresh(object newObjectValue)
        {
            if (!(newObjectValue is IEnumerable))
            {
                throw new ArgumentException(@"The object is not an IEnumerable", nameof(newObjectValue));
            }

            ObjectValue = newObjectValue;

            references.Clear();
            references.AddRange(
                IsDictionary
                    ? ((IEnumerable)ObjectValue).Cast <object>().Select(x => (ObjectReference)Reference.CreateReference(GetValue(x), elementType, GetKey(x)))
                    : ((IEnumerable)ObjectValue).Cast <object>().Select((x, i) => (ObjectReference)Reference.CreateReference(x, elementType, i)));
            indices.Clear();
            foreach (var reference in references)
            {
                indices.Add(reference.Index);
            }
        }