SharePoint 2010에서 동의어를 가져 오려고하는데 코드에 다음 문제가 있습니다. 인덱서가없는 keywordCollection
을 반복합니다. foreach
을 실행하는 것은 너무 오래 걸립니다. 새 키워드를 인스턴스화하는 데 5-10ms 정도 걸리며 지금까지 약 8000 건의 키워드가 있기 때문에 완료하는 데 약 80 초가 걸립니다. 지금까지 시도한 것 :SharePoint 2010에서 foreach 루프가 너무 오래 걸립니다.
이 열거를 얻을 ->뿐만 아니라 80초 소요는
- 는리스트로 컬렉션을 캐스팅 ->이 알 수없는 이유로 실패합니다.
코드 샘플 :
KeywordContext keywordContext = fastProxy.KeywordContext;
SearchSettingGroupCollection searchSettingGroupCollection = keywordContext.SearchSettingGroups;
foreach (SearchSettingGroup searchSettingGroup in searchSettingGroupCollection)
{
if (searchSettingGroup.Name == siteId.ToString())
{
foreach (Keyword keyword in searchSettingGroup.Keywords)
{
//the rest of the work here, per total takes about 470ms
}
}
}
새로운 object<T>
마다 인스턴스화 foreach
문을 사용하지 않고 모음을 반복하는 방법은 무엇입니까?
감사합니다.
"'작업의 // 나머지 여기 ""<---- 이것은 가장 중요한 부분입니다. 루프 안에서 무엇을합니까? 인덱서를 사용하면 어떤 도움이됩니까? – dasblinkenlight
// 작업의 나머지 부분 -> 총 80,000 초에서 총 470ms가 소요되는 일부 문자열 조작. 문제는 foreach가 새로운 읽기 전용 키워드를 생성 할 때마다 10ms가 걸린다고 내 문제입니다. –
그래서 대부분의 키워드를 건너 뛸 수있는 것처럼 보이지 않습니까? 즉, 코드에 컬렉션에있는 각 키워드에 액세스해야하는 것처럼 보입니까? – dasblinkenlight