Note that there are some explanatory texts on larger screens.

plurals
  1. POHow to get the key of a Hashtable entry
    text
    copied!<p>I've got a hashtable that I want to update from a second hashtable. For any of the keys that match I want to copy the value over. The problem I have is when I enumerate the hashtable keys and try to cast each to a string I receive an exception about casting a Guid to a String. Well it's the string I want. When you use the index operator with something like hashtable["FirstName"] then I expect FirstName to be the key. It might use Guids underneath I guess but I need to get out the string for the key, the key value.</p> <pre><code>private void UpdateSharePointFromInfoPath(Hashtable infopathFields) { // Go through all the fields on the infopath form // Invalid Cast Exception Here foreach (String fieldName in infopathFields.Keys) { // If the same field is on sharepoint if (workflowProperties.Item.Fields.ContainsField(fieldName)) { // Update the sharepoint field with the new value from infopath workflowProperties.Item[fieldName] = infopathFields[fieldName]; } } // Commit the changes workflowProperties.Item.Update(); } </code></pre> <p><strong>EDIT</strong> I don't create either of these hashtables. The keys have strings somewhere because I can put the field name in like the following and get the value of the field out. I'm trying to make a shorthand way of doing the following for every field:</p> <pre><code>workflowProperties.Item["FirstName"] = infopathFields["FirstName"]; workflowProperties.Item["LastName"] = infopathFields["LastName"]; workflowProperties.Item["Address"] = infopathFields["Address"]; workflowProperties.Item["DOB"] = infopathFields["DOB"]; ect... </code></pre> <p><strong>EDIT</strong> It's been said that the hashtable uses Guids, but it also obviously has a string inside else I wouldn't be able to do infopathFields["FirstName"]. It's the value on the string I pass in there that I want.</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload