CookieContainer is a collection in which you can add the necessary objects of type Cookie. You simply initialize it without adding anything to it.
That is, in order to send a cookie, you need to do something like:
var container = new CookieContainer(); container.Add(new Cookie("Name_1", "Value")); container.Add(new Cookie("Name_2", "Value"));
And then this collection can and ask the request.
About getting ...
You have a response from the server, that is, HttpWebResponse response - the response has the same collection with a cookie. Just take what you need, as from a regular collection, or go through a cycle.
Here is an example from MS (for clarity, which values can be pulled out):
foreach (Cookie cook in response.Cookies) { Console.WriteLine("Cookie:"); Console.WriteLine("{0} = {1}", cook.Name, cook.Value); Console.WriteLine("Domain: {0}", cook.Domain); Console.WriteLine("Path: {0}", cook.Path); Console.WriteLine("Port: {0}", cook.Port); Console.WriteLine("Secure: {0}", cook.Secure); Console.WriteLine("When issued: {0}", cook.TimeStamp); Console.WriteLine("Expires: {0} (expired? {1})", cook.Expires, cook.Expired); Console.WriteLine("Don't save: {0}", cook.Discard); Console.WriteLine("Comment: {0}", cook.Comment); Console.WriteLine("Uri for comments: {0}", cook.CommentUri); Console.WriteLine("Version: RFC {0}", cook.Version == 1 ? "2109" : "2965"); // Show the string representation of the cookie. Console.WriteLine("String: {0}", cook.ToString()); }