J'ai une hashtable que je veux mettre à jour à partir d'une deuxième hashtable. Pour l'une des clés qui correspondent, je veux copier la valeur. Le problème que j'ai est quand j'énumère les clefs de hashtable et essaye de lancer chaque à une chaîne que je reçois une exception au sujet de mouler un Guid à une chaîne. Eh bien c'est la chaîne que je veux. Lorsque vous utilisez l'opérateur d'index avec quelque chose comme hashtable ["FirstName"] alors je m'attends à ce que FirstName soit la clé. Il pourrait utiliser Guids sous je suppose mais j'ai besoin de sortir la chaîne pour la clé, la valeur clé.Comment obtenir la clé d'une entrée Hashtable
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();
}
EDIT Je ne crée pas non plus de ces tables de hachage. Les clés ont des chaînes quelque part parce que je peux mettre le nom du champ comme suit et obtenir la valeur du champ. Je suis en train de faire un raccourci de faire ce qui suit pour tous les domaines:
workflowProperties.Item["FirstName"] = infopathFields["FirstName"];
workflowProperties.Item["LastName"] = infopathFields["LastName"];
workflowProperties.Item["Address"] = infopathFields["Address"];
workflowProperties.Item["DOB"] = infopathFields["DOB"];
ect...
EDIT Il a été dit que le Hashtable utilise Guids, mais elle aussi a de toute évidence une chaîne dans le reste je ne voudrais pas être capable de faire infopathFields ["FirstName"]. C'est la valeur sur la chaîne que je passe là-bas que je veux.
Je ne sais pas pourquoi vos Guids et vos cordes se mélangent, mais pourquoi utilisez-vous l'ancien Hasht? classe capable et pas le dictionnaire 2.0-et-dessus? –
Je ne crée pas les hashtables. –
J'ai voté parce que je n'apprécie pas que vous insultiez des gens qui ont essayé de vous aider. –