Learn how to a build a cloud-first strategyRegister Now

x
?
Solved

vb.net - get random from array

Posted on 2013-05-14
1
Medium Priority
?
439 Views
Last Modified: 2013-05-14
Hello,
I am trying to get 3 results when I call showRand() function.
how can I make something so that I dont get the same number twice?

        Dim numbs() As String = {"1", "2", "3", "11", "12", "13"}
        Debug.Print(showRand(numbs, 3))
        
    
    Function showRand(ByRef data() As String, Optional ByVal MoreThanOne As Integer = 0) As String
        Dim Result As String = Nothing
        Dim Rand As New Random

        If MoreThanOne > 0 Then
            For i = 1 To MoreThanOne
                Result += data(Rand.Next(0, data.GetUpperBound(0) + 1)) & ","
            Next
            Result = Result.Substring(0, Result.Length - 1)
        Else
            Result = data(Rand.Next(0, data.GetUpperBound(0) + 1))
        End If

        Return Result
    End Function

Open in new window

0
Comment
Question by:XK8ER
1 Comment
 
LVL 86

Accepted Solution

by:
Mike Tomlinson earned 2000 total points
ID: 39167123
One way...
    Function showRand(ByVal data() As String, Optional ByVal MoreThanOne As Integer = 0) As String
        Dim Result As String = Nothing
        Static Rand As New Random

        If MoreThanOne > 0 Then
            If MoreThanOne <= data.Length Then
                Dim index As Integer
                Dim strings As New List(Of String)(data)
                Dim selected As New List(Of String)
                For i As Integer = 1 To MoreThanOne
                    index = Rand.Next(0, strings.Count)
                    selected.Add(strings(index))
                    strings.RemoveAt(index)
                Next
                Result = String.Join(",", selected.ToArray)
            End If
        Else
            Result = data(Rand.Next(0, data.Length))
        End If

        Return Result
    End Function

Open in new window

0

Featured Post

Restore individual SQL databases with ease

Veeam Explorer for Microsoft SQL Server delivers an easy-to-use, wizard-driven interface for restoring your databases from a backup. No expert SQL background required. Web interface provides a complete view of all available SQL databases to simplify the recovery of lost database

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

If you need to start windows update installation remotely or as a scheduled task you will find this very helpful.
In real business world data are crucial and sometimes data are shared among different information systems. Hence, an agreeable file transfer protocol need to be established.
Loops Section Overview
When cloud platforms entered the scene, users and companies jumped on board to take advantage of the many benefits, like the ability to work and connect with company information from various locations. What many didn't foresee was the increased risk…
Suggested Courses
Course of the Month20 days, 20 hours left to enroll

810 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question