© 2026 Hedgehog Software, LLC

TwitterGitHubDiscord
More
CommunitiesDocsAboutTermsPrivacy
Search
Star
Setup for Free
C#C
C#•2y ago•
21 replies
Max

Infinite loop

/// ------------------------------------------------------------
/// <summary>
/// Creates a stack containing unique random numbers</summary>
/// <param name="lower">The lower bound for each number (inclusive)</param>
/// <param name="upper">The upper bound for each number (inclusive)</param>
/// <param name="count">The number of numbers</param>
/// <returns>The stack containing unique random numbers</returns>
/// ------------------------------------------------------------
public static Stack<int> Opdr3RandomNumbers(int lower, int upper, int count)
{
    Stack<int> stack = new Stack<int>();
    HashSet<int> voorgekomenGetallen = new HashSet<int>();

    Random randomNumber = new Random();

    while (stack.Count < count)
    {
        int number = randomNumber.Next(lower, upper);
        bool hasOccurred = occurredNumbers.Contains(number);

        while (hasOccurred) {
            number = randomNumber.Next(lower, upper);
            hasOccurred = occurredNumbers.Contains(number);
        }

        stack.Push(number);
        occurredNumbers.Add(number);
    }

    return stack;
}
/// ------------------------------------------------------------
/// <summary>
/// Creates a stack containing unique random numbers</summary>
/// <param name="lower">The lower bound for each number (inclusive)</param>
/// <param name="upper">The upper bound for each number (inclusive)</param>
/// <param name="count">The number of numbers</param>
/// <returns>The stack containing unique random numbers</returns>
/// ------------------------------------------------------------
public static Stack<int> Opdr3RandomNumbers(int lower, int upper, int count)
{
    Stack<int> stack = new Stack<int>();
    HashSet<int> voorgekomenGetallen = new HashSet<int>();

    Random randomNumber = new Random();

    while (stack.Count < count)
    {
        int number = randomNumber.Next(lower, upper);
        bool hasOccurred = occurredNumbers.Contains(number);

        while (hasOccurred) {
            number = randomNumber.Next(lower, upper);
            hasOccurred = occurredNumbers.Contains(number);
        }

        stack.Push(number);
        occurredNumbers.Add(number);
    }

    return stack;
}


it cannot find a new number, this is the testcase it fails on: [TestCase(100, 100, 1)]
Screenshot_2024-03-06_at_15.41.46.png
C# banner
C#Join
We are a programming server aimed at coders discussing everything related to C# (CSharp) and .NET.
61,828Members
Resources

Similar Threads

Was this page helpful?
Recent Announcements

Similar Threads

Winforms infinite-loop
C#CC# / help
2y ago
❔ Breaking an infinite while loop
C#CC# / help
3y ago
why is this while loop infinite?
C#CC# / help
3y ago
csharp infinite loop caused by Identity store provider
C#CC# / help
2y ago