Lendo várias planilhas do Excel com diferentes nomes de planilhas

Eu gostaria de saber como eu posso ler várias planilhas do excel com nome de planilha diferente em c # e com o usado de oledb.

Eu tenho essa maneira existente de ler várias planilhas (mas com nome de planilha fixa):

DataSet ds = new DataSet();
var excelConnectionString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=Excel 8.0", path); 
OleDbConnection connection = new OleDbConnection();
connection.ConnectionString = excelConnectionString;

var i = 1;
while (i <= 4)
{
    string query = "SELECT * FROM [Sheet" + i + "$]";
    ds.Clear();
    OleDbDataAdapter data = new OleDbDataAdapter(query, connection);
    data.Fill(ds);

    // other stuff
    i = i + 1;
}

Este aqui funciona. Mas agora estou em situação diferente em que os nomes das folhas de trabalho não são fixos, por exemplo: Folha1 é Cão, Folha2 é Folha de Gato3 é Pássaro.

Agora, minha preocupação é como posso fazer um loop nesses nomes de planilha com o uso do meu código existente.

questionAnswers(1)

yourAnswerToTheQuestion