iT邦幫忙

1

Visual studio 群組分類

  • 分享至 

  • xImage

在VB 2019 需要針對陣列內容(String)去做分類?
程式如下:
Dim data(5) as string
Dim Groop_cont as int
Dim Groop(3) as string

data(1)="OS"
data(2)="OS"
data(3)="OSC"
data(4)="OSC"
data(5)="PWM"

我想可以得到
(1)有幾個一樣的資料? Groop_cont =?(目測 是3個 但是程式寫法還請指教...)
(2)以及相同的移除,可以得到
Groop(1)="OS"
Groop(2)="OSC"
Groop(3)="PWM"

以上,還請高手幫忙解答一下~~能使用甚麼方式分類

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

2
japhenchen
iT邦超人 1 級 ‧ 2020-09-03 07:53:55
最佳解答

用Enumerable
你的程式我小改了一點點

Module Module1

    Sub Main()
        Dim data(5) As String

        data(1) = "OS"
        data(2) = "OS"
        data(3) = "OSC"
        data(4) = "OSC"
        data(5) = "PWM"
        Dim groupdata = data.Where(Function(p) p <> "").GroupBy(Function(k) k)
        For Each item In groupdata
            Console.WriteLine(item.Key & "一共出現" & item.Count.ToString & "次")
        Next
        Console.ReadKey()
    End Sub

End Module

輸出

OS一共出現2次
OSC一共出現2次
PWM一共出現1次

太久沒用VB了,很多用法都被C#取代到忘光

Where(Function(p) p <> "") 目的是把空白字串移除掉

因為VB.net的陣列索引從0開始,你0沒設.....所以會出現空白個體
你如果這樣改,就正常了
data(0) = "x"
data(1) = "OS"
data(2) = "OS"
data(3) = "OSC"
data(4) = "OSC"
data(5) = "PWM"
輸出

x一共出現1次
OS一共出現2次
OSC一共出現2次
PWM一共出現1次

VB的陣列Dim array(n) as String
的n 為索引上界限?忘了

1
小魚
iT邦大師 1 級 ‧ 2020-09-02 23:15:48

所以你目前是怎麼做的呢?

我要發表回答

立即登入回答