private static string[] GetValuesAsStrings(
            HeaderDescriptor descriptor,
            HttpHeaders.HeaderStoreItemInfo info,
            object exclude = null)
        {
            int valueCount = HttpHeaders.GetValueCount(info);

            string[] values;
            if (valueCount > 0)
            {
                values = new string[valueCount];
                int currentIndex = 0;
                HttpHeaders.ReadStoreValues <string>(values, info.RawValue, (HttpHeaderParser)null, (string)null, ref currentIndex);
                HttpHeaders.ReadStoreValues <object>(values, info.ParsedValue, descriptor.Parser, exclude, ref currentIndex);
                HttpHeaders.ReadStoreValues <string>(values, info.InvalidValue, (HttpHeaderParser)null, (string)null, ref currentIndex);
                if (currentIndex < valueCount)
                {
                    string[] strArray = new string[currentIndex];
                    Array.Copy((Array)values, 0, (Array)strArray, 0, currentIndex);
                    values = strArray;
                }
            }
            else
            {
                values = Array.Empty <string>();
            }
            return(values);
        }