4,103 questions
I think, you're looking for something like this..
internal class Program
{
static TableServers host1List = TableServers.GetTableServers();
static TableServers host2List = TableServers.GetTableServers();
static void Main(string[] args)
{
TableServers servers = TableServers.GetTableServers();
for (int i = 0; i < 5; i++)
{
Host1GetNextServer();
Host2GetNextServer();
}
Console.ReadKey();
}
private static void Host1GetNextServer()
{
Console.Write("Next server is: ");
Console.WriteLine(host1List.GetNextServer());
}
private static void Host2GetNextServer()
{
Console.Write("Next server is: ");
Console.WriteLine(host2List.GetNextServer());
}
}
// singleton class
internal class TableServers
{
// singleton must have private readonly instance
private static readonly TableServers _instance = new();
private List<string> servers = new();
public int nextServer = 0;
private TableServers()
{
servers.Add("Hozna");
servers.Add("Pepa");
servers.Add("Jana");
servers.Add("Kate");
}
// this method returns the instance
public static TableServers GetTableServers()
{
return _instance;
}
public string GetNextServer()
{
string result = servers[nextServer];
nextServer += 1;
if (nextServer >= servers.Count)
{
nextServer = 0;
}
return result;
}
}