C# Key Generation Logic Keeps Resetting to Initial Value

I’m working on a key-generation system in C#. The logic should increment keys alphabetically, similar to how Excel columns work (e.g., A → B → C … Z → AA → AB). However, I’m experiencing unexpected behavior where keys reset after the first iteration in a loop.

I implemented two pieces of code for generating keys.

Code A (Works as Expected)
Key _key = new Key();

var a = _key.GenerateNextKey();
var b = a.GenerateNextKey();
var c = b.GenerateNextKey();
var d = c.GenerateNextKey();
var e = d.GenerateNextKey();
var f = e.GenerateNextKey();

Console.WriteLine(a);
Console.WriteLine(b);
Console.WriteLine(c);
Console.WriteLine(d);
Console.WriteLine(e);
Console.WriteLine(f);

This works as expected, generating keys sequentially from A to F.

Code B (Unexpected Behavior)
Key _key = new Key();

for (int i = 0; i < 5; i++)
{
    _key = _key.GenerateNextKey();
    Console.WriteLine(_key);
}

Expected Output:

B
C
D
E
F

Actual Output:

A
A
A
A
A

I expected Code B to increment keys just like Code A, but instead, the key resets to A after the first iteration.

What Did You Expect to Happen?

I expected the key to increment sequentially after every iteration of the loop, producing:

A
B
C
D
E
F

However, after the first iteration, the output resets to A repeatedly.

The Original GenerateNextKey Method

Here is the original GenerateNextKey method that I am using:

public Key GenerateNextKey()
{
    // Stack to keep track of the new characters
    Stack<char> newKey = new Stack<char>();
    Stack<char> currentCopy = new Stack<char>();

    // A flag to determine if a solution was found or not
    bool isIncremented = false;
    int lastAlphabetOccurences = 0;
    
    while (_keyChars.Count > 0)
    {
        // Pop the top element
        char currentTop = _keyChars.Pop();

        // Add it to the copy
        currentCopy.Push(currentTop);

        // Check if the current top element is the 'Z' element and the next key has not been generated
        if (currentTop != 'Z' && !isIncremented)
        {
            // Generate the key by incrementing the current top element
            currentTop++;
            isIncremented = true;
        }
        else if (currentTop == 'Z' && !isIncremented)
        {
            // Increment the top element to be an 'A'
            currentTop = 'A';

            // Count the 'Z' occurrences
            lastAlphabetOccurences++;
        }

        // Count the 'Z' occurrences
        if (currentTop == 'Z' && !isIncremented)
            lastAlphabetOccurences++;

        // Push to the newKey stack
        newKey.Push(currentTop);
    } // end while

    // Override the old stack with the new stack
    // Reverse the order of the copy stack
    _keyChars = currentCopy.ToReverseStack();

    // Check if we need to increment the string, i.e., we have to add 'A'
    if (_keyChars.Count == lastAlphabetOccurences)
        newKey.Push('A');

    return new Key(newKey.ToReverseStack());
}

Let me know if any further clarification is needed.

Trang chủ Giới thiệu Sinh nhật bé trai Sinh nhật bé gái Tổ chức sự kiện Biểu diễn giải trí Dịch vụ khác Trang trí tiệc cưới Tổ chức khai trương Tư vấn dịch vụ Thư viện ảnh Tin tức - sự kiện Liên hệ Chú hề sinh nhật Trang trí YEAR END PARTY công ty Trang trí tất niên cuối năm Trang trí tất niên xu hướng mới nhất Trang trí sinh nhật bé trai Hải Đăng Trang trí sinh nhật bé Khánh Vân Trang trí sinh nhật Bích Ngân Trang trí sinh nhật bé Thanh Trang Thuê ông già Noel phát quà Biểu diễn xiếc khỉ Xiếc quay đĩa Dịch vụ tổ chức sự kiện 5 sao Thông tin về chúng tôi Dịch vụ sinh nhật bé trai Dịch vụ sinh nhật bé gái Sự kiện trọn gói Các tiết mục giải trí Dịch vụ bổ trợ Tiệc cưới sang trọng Dịch vụ khai trương Tư vấn tổ chức sự kiện Hình ảnh sự kiện Cập nhật tin tức Liên hệ ngay Thuê chú hề chuyên nghiệp Tiệc tất niên cho công ty Trang trí tiệc cuối năm Tiệc tất niên độc đáo Sinh nhật bé Hải Đăng Sinh nhật đáng yêu bé Khánh Vân Sinh nhật sang trọng Bích Ngân Tiệc sinh nhật bé Thanh Trang Dịch vụ ông già Noel Xiếc thú vui nhộn Biểu diễn xiếc quay đĩa Dịch vụ tổ chức tiệc uy tín Khám phá dịch vụ của chúng tôi Tiệc sinh nhật cho bé trai Trang trí tiệc cho bé gái Gói sự kiện chuyên nghiệp Chương trình giải trí hấp dẫn Dịch vụ hỗ trợ sự kiện Trang trí tiệc cưới đẹp Khởi đầu thành công với khai trương Chuyên gia tư vấn sự kiện Xem ảnh các sự kiện đẹp Tin mới về sự kiện Kết nối với đội ngũ chuyên gia Chú hề vui nhộn cho tiệc sinh nhật Ý tưởng tiệc cuối năm Tất niên độc đáo Trang trí tiệc hiện đại Tổ chức sinh nhật cho Hải Đăng Sinh nhật độc quyền Khánh Vân Phong cách tiệc Bích Ngân Trang trí tiệc bé Thanh Trang Thuê dịch vụ ông già Noel chuyên nghiệp Xem xiếc khỉ đặc sắc Xiếc quay đĩa thú vị
Trang chủ Giới thiệu Sinh nhật bé trai Sinh nhật bé gái Tổ chức sự kiện Biểu diễn giải trí Dịch vụ khác Trang trí tiệc cưới Tổ chức khai trương Tư vấn dịch vụ Thư viện ảnh Tin tức - sự kiện Liên hệ Chú hề sinh nhật Trang trí YEAR END PARTY công ty Trang trí tất niên cuối năm Trang trí tất niên xu hướng mới nhất Trang trí sinh nhật bé trai Hải Đăng Trang trí sinh nhật bé Khánh Vân Trang trí sinh nhật Bích Ngân Trang trí sinh nhật bé Thanh Trang Thuê ông già Noel phát quà Biểu diễn xiếc khỉ Xiếc quay đĩa
Thiết kế website Thiết kế website Thiết kế website Cách kháng tài khoản quảng cáo Mua bán Fanpage Facebook Dịch vụ SEO Tổ chức sinh nhật