重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
在.NET 中微软已经为我们内置了一些方法,我们可以直接使用该方法以快速达到我们的目的
创新互联网站建设服务商,为中小企业提供成都网站制作、网站设计服务,网站设计,成都网站托管等一站式综合服务型公司,专业打造企业形象网站,让您在众多竞争对手中脱颖而出创新互联。
Module Module1
Sub Main()
Dim a(3) As Int32
a(0) = 1
a(1) = 1
a(2) = 1
a(3) = 1
'推荐第一种方法
If a.Distinct().Count() = 1 Then
If a.All(Function(c) c = 1) Then
End If
End If
End Sub
End Module
第二种方法为LINQ,这是一种高级用法;是.NET 程序员必知必会的东西,如果不懂怎么用可以按F1查看官方文档
面种我觉快
Dim s As String = "sadkalkdjajjdhsdsa"
Console.WriteLine(s.Split("a").Length - 1)
我还在床上,就只给你思路吧
我是自己写了个函数,将数组传入并返回一个新数组列表
子函数中,先将数组排序sort函数,然后有两个循环,外循环从0到Length,变量i,内循环从i到Length,判断第i个数是否与包括自身的后续数相同,相同就有变量加1,内循环结束条件是找到第一个不同的数,并将外循环i复植为内循环中第一个不同的数的下表。。。
这个是思路,如果不能理解再再追加我给你代码,不过建议自己试试
你看写这个,和你的要求差不多。。。;oldq=1
有程序的~~~你可以参考下~~~
Dim array1() As String
Dim array2() As Boolean
Dim i As Integer
Dim j As Integer
Dim str1 As String = "a,c,c,c,a,b,c,d,f,eee,eee"
array1 = Split(str1, ",")
str1 = ""
ReDim array2(UBound(array1))
For i = 0 To UBound(array1)
array2(i) = False
Next
For i = 0 To UBound(array1) - 1
If array2(i) = False Then
For j = i + 1 To UBound(array1)
If array1(i) = array1(j) And array2(j) = False Then
array2(j) = True
End If
Next j
End If
Next i
For i = 0 To UBound(array1)
If array2(i) = False Then
str1 = str1 array1(i) ","
End If
Next i
If str1 "" Then
str1 = Strings.Left(str1, Len(str1) - 1)
End If
先把strA排序,
ind = 2
if len(strA) = 0 then return
strB(1) = strA(1)
for each s in strA
if (strA(ind) strA(ind - 1) then
count = 0
strB(ind) = strA(ind)
else
strB(ind) = strA(ind - 1)
end if
ind = ind + 1
next s
vb语法忘了。。。大概是这么个意思吧。。。。 排序N LOG N,后面是线性的N,所以总共是NLOGN
比如数组a。里面有5个值,其中有3个是重复的?
如果这样的话,很好办哦。
新建一个数组b,然后遍历要去除的数组a,
从a中把每一个都取出来,和新建的b里面的去比,如果有相同的,则不放入b,
否则就放入数组b,直到循环结束。