title: Json children properties to dictionary
body: <p>I'm trying to extract a list of dates for a property of all children nodes on a JToken but cannot get the syntax correct.</p>
  
  <p>I want to get a list of dates in property <code>"timeStamp": "2013-09-11T00:30:00Z"</code> so I can determine the min/max dates for all child nodes.</p>
  
  <p>I've tried the following which returns an anonymous type and makes it difficult to use the returned object.</p>
  
  <pre><code>var timeStamps = Jarr.Select(x =&gt; new
  {
     timeStamp = (DateTime)x.SelectToken("timeStamp")
  });
  </code></pre>
  
  <ol>
  <li>How can I get say a <code>List&lt;string&gt;</code> or <code>List&lt;DateTime&gt;</code> only of all child timestamps?</li>
  <li>Is it possible to get a <code>Dictionary&lt;string, DateTime&gt;</code> of id, timestamp?</li>
  </ol>
  
  <p>The Json looks like this, so essentially from LEVEL1 I want to check all children, children of children for the same property.</p>
  
  <pre><code>{
    "children": [
      {
        "type": "LEVEL2",
        "name": "Item1",
        "id": "1.7193",
        "timeStamp": "2013-09-11T00:30:00Z",
      },
      {
        "type": "LEVEL2",
        "name": "Item2",
        "id": "1.7194",
        "timeStamp": "2013-09-11T00:30:00Z",
      },
      {
        "type": "LEVEL2",
        "name": "Item3",
        "id": "1.7191",
        "timeStamp": "2013-09-11T00:30:00Z",
      }
    ],
    "type": "LEVEL1",
    "name": "Stock-FRT54443",
    "id": "1000145",
    "countryCode": "en"
  }
  </code></pre>
  
  <p>and method </p>
  
  <pre><code>    void AddNodes(TreeView treeView, JObject jObj, TreeNodeCollection parent)
      {
          JToken Jarr = null;
          Dictionary&lt;string, string&gt; marketProperties = new Dictionary&lt;string, string&gt;();
          foreach (var property in jObj.Properties())
          {
              if (property.Name == "children")
              {
                  Jarr = property.Value;
              }
              else
              {
                  string key = property.Name;
                  string prop = property.Value.ToString();
                  marketProperties.Add(key, prop);
              }
  
          }
  
          if (marketProperties["type"] == "LEVEL1")
          {
            //Not working!
            var timeStamps = Jarr["timeStamp"].Values&lt;string&gt;();
          }
      }
  </code></pre>