두 번째 해시 테이블에서 업데이트하려는 해시 테이블이 있습니다. 일치하는 키가 있으면 그 값을 복사하고 싶습니다. 내가 가진 문제는 해시 테이블 키를 열거하고 각 문자열을 Guid를 String으로 형 변환하는 예외를받는 문자열로 캐스팅하려고 할 때입니다. 그게 내가 원하는 끈이야. index 연산자를 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();
}
편집 나는이 해시 테이블 중 하나를 작성하지 않습니다. 필드 이름을 다음과 같이 넣고 필드 값을 가져올 수 있기 때문에 키에 문자열이 있습니다. 나는 모든 필드에 대해 다음을 수행하는 속기 방법으로 만들려고 노력 해요 : 해시 테이블은 GUID를 사용했다 됐어요
workflowProperties.Item["FirstName"] = infopathFields["FirstName"];
workflowProperties.Item["LastName"] = infopathFields["LastName"];
workflowProperties.Item["Address"] = infopathFields["Address"];
workflowProperties.Item["DOB"] = infopathFields["DOB"];
ect...
편집을, 그러나 또한 분명히 그럴 것 다른 내부 문자열을 가지고 infopathFields [ "FirstName"]을 (를) 수행 할 수 있어야합니다. 그것은 내가 원하는 문자열을 전달하는 값입니다.
나는 당신의 GUID를 문자열이 혼합지고있는 이유 모르겠지만, 왜 이전 Hasht를 사용하는 2.0 이상의 사전을 사용할 수 있습니까? –
해시 테이블을 만들지 않습니다. –
나는 당신을 도우려는 사람들을 모욕하는 것에 감사하지 않기 때문에이 표를 썼습니다. –