比较功能问题asp.net

问题描述:

我需要比较两个字符串并获取重复值和原始值。
在调用chkDuplicateValue函数时,我需要在返回值中同时获得重复的和原始的? ,充当两个字符串的分隔符。 昏暗oldStr作为字符串= “TEST1,TEST2,测试” 昏暗中newstr作为字符串= “检验,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的经验吗? – 2011-12-19 18:06:29

+0

“原创价值”在这里似乎是一个误用。 – David 2011-12-19 18:07:21

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

,如果不使用LINQ加入扩展方法

使用LINQ 相交返回重复和联盟返回Distinctlist工作。通过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