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); }