title: List<> of new, on-the-fly object
body: <p>I've got a bit of code that is giving me some trouble.</p>
  
  <p>I'm trying to bundle a list of images into a zip file.  The problem I'm having is that, on occasion, one of the images will be opened when it is accessed, causing an exception.</p>
  
  <p>I'm pretty sure it's a timing issue, so I'm coding a 'second chance' loop to catch the images that fall through (as opposed to the existing behavior, where it halts on any error and gives back what it has thusfar).</p>
  
  <p>I have the potentially erroring sections of code in a try block, as seen below</p>
  
  <pre><code>if (!Directory.Exists(physicalPath + "/" + fi.Description))
  {
      Directory.CreateDirectory(physicalPath + "/" + fi.Description);
  }
  wc.DownloadFile(source, physicalPath + "/" + fileName);
  ze = zip.AddFile(physicalPath + "/" + fileName, path);
  ze.FileName = fileName;
  </code></pre>
  
  <p>'ze' is a 'ZipEntry' from the Ionic.Zip library, and 'wc' is a WebClient.</p>
  
  <p>In my catch, I need to store two pieces of information: 'source' and the string that results from 'physicalPath + "/" + filename'.</p>
  
  <p>I know there's a way in .NET 4 to dynamically create a new object to hold this data, but I don't recall what it's called.  This has greatly hampered my google-fu.</p>
  
  <p>How can I create a dynamic object that will hold a pair of strings (preferably with property names on the variables) without creating a whole new class?</p>