Edit: OK, misread the question. HttpCookie.Values is a NameValueCollection, so you can modify that collection - but you will need to re-send the cookie as a new one to overwrite the old one:
HttpCookie cookie = Request.Cookies["MyCookie"];
if(cookie != null)
{
cookie.Values.Remove("KeyNameToRemove");
Response.AppendCookie(cookie);
}
To "delete" an entire cookie you have to "expire" it - change its expiration date and re-send it to the client:
HttpCookie cookie = Request.Cookies["MyCookie"];
if(cookie != null)
{
cookie.Expires = DateTime.Today.AddMonths(-1);
Response.AppendCookie(cookie);
}
Working with cookies in .NET is more than a little unintuitive, unfortunately. The AddMonths() is kinda arbitrary. I use one month, you could use anything - just need to make sure the Expires date is set in the past relative to the receiving computer's clock.