두 개의 일반 문자열 목록이 있습니다. 첫 번째 문자열에는 약 1,000,000 개의 용어가 포함되고 두 번째 문자열에는 약 100,000 개의 키워드가 포함됩니다. 첫 번째 목록의 용어는 두 번째 목록의 키워드를 포함 할 수도 있고 포함하지 않을 수도 있습니다. 첫 번째 목록에서 두 번째 목록의 키워드를 포함하지 않는 용어를 분리해야합니다. 는 현재 내가 (프레임 워크 3.5과 VB.NET)이 같은 일을 해요 :VB.NET - 다른 목록에 대한 큰 일반 목록 필터링
For Each keyword In keywordList
termList.RemoveAll(AddressOf ContainsKeyword)
Next
Private Shared Function ContainsKeyword(ByVal X As String) As Integer
If X.IndexOf(keyword) >= 0 Then
Return True
Else
Return False
End If
End Function
말할 필요도없이,이 영원히합니다. 가장 빠른 방법은 무엇입니까? 아마도 사전을 사용하고 있을까요? 어떤 힌트라도 도움이 될 것입니다
을 문자열에 특정 하위 문자열이 포함되어 있는지 확인한 다음,'String.IndexOf' 대신'String.Contains' 메소드를 사용하십시오. –
방금 Dictionary 클래스를 확인했는데 각 용어에서 키/값 쌍을 쉽게 만들 수 있지만 문제는 반복 키가 있어야한다는 것입니다. –