System.Runtime.Serialization.Formatters.Binary.ReadObjectInfo.Position C# (CSharp) Method

Position() private method

private Position ( string name ) : int
name string
return int
        private int Position(string name)
        {
            if (_cache == null)
            {
                return -1;
            }

            if (_cache._memberNames.Length > 0 && _cache._memberNames[_lastPosition].Equals(name))
            {
                return _lastPosition;
            }
            else if ((++_lastPosition < _cache._memberNames.Length) && (_cache._memberNames[_lastPosition].Equals(name)))
            {
                return _lastPosition;
            }
            else
            {
                // Search for name
                for (int i = 0; i < _cache._memberNames.Length; i++)
                {
                    if (_cache._memberNames[i].Equals(name))
                    {
                        _lastPosition = i;
                        return _lastPosition;
                    }
                }

                _lastPosition = 0;
                return -1;
            }
        }