Eu estive correndo em código (novo código) que usa o que eu chamo de 'Parallel Arrays' ou Listas. Ou seja, existem 2 matrizes que contêm dados relacionados e são vinculadas por sua posição (índice) na matriz.
Considero isso confuso e propenso a todos os tipos de erros. A solução que eu normalmente proponho é criar um objeto chamado Company
com os campos CompanyId e CompanyName.
Um exemplo muito real:
List<string> companyNames;
List<int> companyIds;
//...They get populated somewhere and we then process
for(var i=0; i<companyNames.Count; i++)
{
UpdateCompanyName(companyIds[i],companyNames[i]);
}
Essas matrizes paralelas são consideradas más práticas ?