Solved

vb.net - get random from array

Posted on 2013-05-14
1
432 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 85

Accepted Solution

by:
Mike Tomlinson earned 500 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

3 Use Cases for Connected Systems

Our Dev teams are like yours. They’re continually cranking out code for new features/bugs fixes, testing, deploying, testing some more, responding to production monitoring events and more. It’s complex. So, we thought you’d like to see what’s working for us.

Question has a verified solution.

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

This article describes relatively difficult and non-obvious issues that are likely to arise when creating COM class in Visual Studio and deploying it by professional MSI-authoring tools. It is assumed that the reader is already familiar with the cla…
For those of you who don't follow the news, or just happen to live under rocks, Microsoft Research released a beta SDK (http://www.microsoft.com/en-us/download/details.aspx?id=27876) for the Xbox 360 Kinect. If you don't know what a Kinect is (http:…
This Micro Tutorial hows how you can integrate  Mac OSX to a Windows Active Directory Domain. Apple has made it easy to allow users to bind their macs to a windows domain with relative ease. The following video show how to bind OSX Mavericks to …
Along with being a a promotional video for my three-day Annielytics Dashboard Seminor, this Micro Tutorial is an intro to Google Analytics API data.

803 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