以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  关于集合的问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=51953)

--  作者:一辈子只做一件事
--  发布时间:2014/6/6 10:20:00
--  关于集合的问题
请教老师,如果两个集合,里面的元素相同,但元素的位置不同,例如{1,3,5} 和{3,5,1},这两个集合是相同的吗?
--  作者:Bin
--  发布时间:2014/6/6 10:21:00
--  
不相同
--  作者:一辈子只做一件事
--  发布时间:2014/6/6 10:22:00
--  
谢谢


--  作者:一辈子只做一件事
--  发布时间:2014/6/6 10:36:00
--  
那么,有没有什么简单方法来判断两个集合中的元素是否相同啊,就像数学概念里两个相同的集合
例如,
dim a as string
dim b as string
dim c as string
dim d as string
dim e as string
dim f as string
dim s1() as string = {a,b,c}
dim s2() as string = {d,e,f}
dim s11 as new list (of string)
dim s22 as new list (of string)
s11.addrange(s1)
s22.addrange(s2)

接下来,有什么简单方法判断两个集合的元素相同?
[此贴子已经被作者于2014-6-6 10:50:19编辑过]

--  作者:有点甜
--  发布时间:2014/6/6 10:40:00
--  
以下是引用一辈子只做一件事在2014-6-6 10:36:00的发言:
那么,有没有什么简单方法来判断两个集合中的元素是否相同啊

 

Dim ls1 As new List(Of String)
Dim ls2 As new List(of String)

ls1.add("1")
ls1.add("3")
ls1.add("4")

ls2.add("4")
ls2.add("2")
ls2.add("1")

If ls1.Count = ls2.Count Then
    For Each ls As String In ls1
        If ls2.Contains(ls) = False Then
            msgbox("不匹配")
        End If
    Next
End If


--  作者:一辈子只做一件事
--  发布时间:2014/6/6 10:54:00
--  
谢谢老师,明白了
--  作者:Bin
--  发布时间:2014/6/6 10:57:00
--  
Dim ls1 As new List(Of String)
Dim ls2 As new List(of String)
Dim Ismatch As Boolean=True
ls1.add("1")
ls1.add("3")
ls1.add("4")
ls2.add("4")
ls2.add("3")
ls2.add("1")
ls1.sort()
ls2.sort()
If ls1.Count = ls2.Count Then
    For i As Integer = 0 To ls1.count-1
        If ls1(i) <> ls2(i) Then
            Ismatch = False
            Exit For
        End If
    Next
End If
If Ismatch Then
    MessageBox.show("相等")
Else
    MessageBox.show("不等")
End If


这样严谨一点