2011-12-19 2 views
0

Мне нужно сравнить две строки и получить как дубликат, так и исходное значение.
При вызове функции chkDuplicateValue мне нужно получить как дубликат, так и оригинал в возвращаемом значении? , действует как разделитель для обеих строк. Dim oldStr As String = "test1, test2, тест" Dim NewStr As String = "тест, test53" Пример из пут: Первоначальная стоимость: test1, test2, тест, test53 повторяющееся значение: тестсравнить проблему с функциональностью asp.net

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
Dim oldStr As String = "test1,test2,test" 
Dim newStr As String = "test,test53" 
Dim refinedString As String = chkDuplicateValue(newStr, oldStr) 

«При вызове этой функции мне нужно получить как дубликат, так и оригинал в возвращаемом значении?

Response.Write("Original Value" & refinedString(0)) 
Response.Write("duplicate Value" & refinedString(1)) 
'Example out put : Original Value :test1,test2,test,test53 duplicate Value : test 
End Sub 

Function chkDuplicateValue(ByVal newStr As String, ByVal oldStr As String) As String 
    Dim duplicate As String = "" 
End Function 
+0

Есть ли у вас опыт работы с Linq? –

+0

«Исходное значение» кажется неправильным здесь. – David

ответ

0
return oldStr.Split(',').Union(newStr.Spit(',')); 

, и если это не работает, используя метод расширения Join LinQ

0

Использование Linq Intersect вернуть дубликаты и Союза для возвращения Distinctlist. Pass newStr ByRef, так что эта неразрушаемая строка будет возвращена на newStr. Кроме того, Remeber ссылаться System.Linq

Function chkDuplicateValue(ByRef newStr As String, ByVal oldStr As String) As String 
    Dim duplicate As String = "" 
    duplicate = String.Join(",",(newStr.Split(',').Intersect(oldStr.Split(','))).ToArray()) 
    newStr = String.Join(",",(newStr.Split(',').Union(oldStr.Split(','))).ToArray()) 
    return uplicate 
End Function 
Смежные вопросы