У меня есть хэш-таблица, которую я хочу обновить со второй хэш-таблицы. Для любого из ключей, которые соответствуют, я хочу скопировать значение. Проблема в том, что когда я перечисляю ключи хеш-таблицы и пытаюсь отбросить каждую строку, я получаю исключение о литье указателя в строку. Ну, это строка, которую я хочу. Когда вы используете оператор индекса с чем-то вроде hashtable ["FirstName"], я ожидаю, что FirstName станет ключом. Он может использовать Guids под собой, но я должен вытащить строку для ключа, значение ключа.Как получить ключ записи 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 Я не создаю либо из этих хеш-таблицы. У ключей есть строки где-то, потому что я могу поместить имя поля следующим образом и получить значение поля. Я пытаюсь сделать сокращенный способ сделать следующее для каждого поля:
workflowProperties.Item["FirstName"] = infopathFields["FirstName"];
workflowProperties.Item["LastName"] = infopathFields["LastName"];
workflowProperties.Item["Address"] = infopathFields["Address"];
workflowProperties.Item["DOB"] = infopathFields["DOB"];
ect...
EDIT Это было сказано, что Хеш использует Guids, но и, очевидно, имеет строку внутри еще я бы не стал уметь делать infopathFields ["FirstName"]. Это значение в строке, которую я прохожу туда, которую я хочу.
Я не уверен, почему ваши гиды и строки смешиваются, но почему вы используете старый хашт способный класс, а не 2.0-и-выше словарь? –
Я не создаю hashtables. –
Я проголосовал за это, потому что я не ценю, что вы оскорбительные люди, которые пытались вам помочь. –