Student stuTemp=new Student()
……
}
如果不行那还有一种可能是你的Student类里几个变量是不是定义成静态的了,也会出现这种问题
List集合可以出现重复值,List集合的特性如下:1、List<T>类是 ArrayList 类的泛型等效类。该类使用大小可按需动态增加的数组实现 IList<T>泛型接口。
2、List<T>类既使用相等比较器又使用排序比较器。
诸如 Contains、IndexOf、LastIndexOf 和 Remove 这样的方法对列表元素使用相等比较器。类型 T 的默认相等比较器按如下方式确定。如果类型 T 实现 IEquatable<T>泛型接口,则相等比较器为该接口的 Equals(T)方法;否则,默认相等比较器为 Object.Equals(Object)。
诸如 BinarySearch 和 Sort 这样的方法对列表元素使用排序比较器。类型 T 的默认比较器按如下方式确定。如果类型 T 实现 IComparable<T>泛型接口,则默认比较器为该接口的 CompareTo(T) 方法;否则,如果类型T 实现非泛型 IComparable 接口,则默认比较器为该接口的 CompareTo(Object) 方法。如果类型 T 没有实现其中任一个接口,则不存在默认比较器,并且必须显式提供比较器或比较委托。
3、List<T>不保证是排序的。在执行要求 List<T>已排序的 *** 作(例如 BinarySearch)之前,您必须对 List<T>进行排序。
4、可使用一个整数索引访问此集合中的元素。此集合中的索引从零开始。
5、List<T>接受 null 作为引用类型的有效值并且允许有重复的元素。
PrivateSub
Command1_Click()
Dim
strInPut()
As
String
Dim
strTmp()
As
String
Dim
I
As
Integer
Dim
J
As
Integer
ReDim
Preserve
strTmp(1)
ReDim
Preserve
strInPut(1)
strInPut
=
Split(Text1.Text,
,
-1)
'
默认Text1中的字符串以空格为分隔符
'你所指定的
vbCrLf
参数是以换行和回车符作为字符串的分隔符,在Text1中是不可见的不易区分,不如就用默认值,推荐
’最好在此处加上排除Text1.Text中本身重复的元素的代码
I
=
0
Do
While
I
<
List1.ListCount
strTmp
=
Filter(strInPut,
CStr(List1.List(I)),
False,
0)
strInPut
=
strTmp
I
=
I
+
1
Loop
J
=
0
Do
While
J
<
UBound(strTmp)
+
1
List1.AddItem
strTmp(J)
J
=
J
+
1
Loop
End
Sub
以上代码缺点是如果List1中有如“上官云”那么就不能追加包含“上官云”的元素了,自己改了
:0
出现以下问题的原因:
1、现在的问题还是
输入两个名字
按键后
两个名字出现在list中是并排不是排列
你所指定的
vbCrLf
参数是以换行和回车符作为字符串的分隔符,在Text1中是不可见的不易区分,导致数组元素分割错误,将两个元素看成一个对待了。
本人拙见,不妥之处请指正,欢迎交流,
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)