public void GetAndRemove() { TestDefaultHeaders headers = NewInstance(); headers.Add(Of("name1"), Of("value1")); headers.Add(Of("name2"), new [] { Of("value2"), Of("value3") }); headers.Add(Of("name3"), new [] { Of("value4"), Of("value5"), Of("value6") }); Assert.Equal(Of("value1"), headers.GetAndRemove(Of("name1"), Of("defaultvalue"))); Assert.True(headers.TryGetAndRemove(Of("name2"), out ICharSequence value)); Assert.Equal(Of("value2"), value); Assert.False(headers.TryGetAndRemove(Of("name2"), out value)); Assert.Null(value); Assert.True(new [] { Of("value4"), Of("value5"), Of("value6") }.SequenceEqual(headers.GetAllAndRemove(Of("name3")))); Assert.Equal(0, headers.Size); Assert.False(headers.TryGetAndRemove(Of("noname"), out value)); Assert.Null(value); Assert.Equal(Of("defaultvalue"), headers.GetAndRemove(Of("noname"), Of("defaultvalue"))); }