2009-11-04 3 views
1

Я использую VB 9.0 для разбиения текстового файла, а затем подсчета вхождений термина <sequence>. Предположим, я хочу также подсчитать вхождения одного и того же термина в другом формате, например. <sequence, а затем сгруппировать их вместе таким образом, что я вывожу результат в текстовое поле, т.е.Как подсчитать количество частично совпадающих слов с VB.NET?

txtMyTerms.Text=<sequence>+<sequence 

Как это сделать? Мой текущий код выглядит следующим образом:

Dim str As String = txtSource.Text 
    Dim arr As String() = str.Split(Nothing) 
    Dim searchTerm As String = "<sequence>" 

    'create query to search for the term <sequence> 
    Dim matchQuery = From word In arr Where word.ToLowerInvariant() = searchTerm.ToLowerInvariant() Select word 

    ' Count the matches. 
    Dim count As Integer = matchQuery.Count() 
    txtMyTerms.Text = count.ToString() 

ответ

0

Я бы попробовал что-то вроде этого. Обратите внимание, что string.Compare более эффективен, чем повторное вызов ToLowerInvariant().

Dim str As String = txtSource.Text 
Dim arr As String() = str.Split(Nothing) 
Dim searchTerm1 As String = "<sequence>" 
Dim searchTerm2 As String = "<sequence" 

'create query to search for the term <sequence> 
Dim matchQuery = From word In arr Where word.Compare(searchTerm1, StringComparison.InvariantCultureIgnoreCase) == 0 Or word.Compare(searchTerm2, StringComparison.InvariantCultureIgnoreCase) == 0 Select word 

' Count the matches. 
Dim count As Integer = matchQuery.Count() 
txtMyTerms.Text = count.ToString()