The TransferEncodingChunked getter returns true if any of the values are "chunked".
But the setter only removes the first one.
var headers = new HttpRequestMessage().Headers;
headers.TransferEncoding.Add(new TransferCodingHeaderValue("chunked"));
headers.TransferEncoding.Add(new TransferCodingHeaderValue("chunked"));
headers.TransferEncodingChunked = false;
Console.WriteLine(headers.TransferEncodingChunked); // True
We should probably change the setter to remove all occurrences such that setting the property to false actually means it's now false.