Olá,
Estou com um problema que não consigo achar uma solução.
Tenho um método que recebe como parâmetro um ArrayList com N itens e que tem que me retornar um Array de Strings com no máximo X itens concatenados com vírgula.
Por exemplo:
Recebo um ArrayList com 5 itens, porém, meu limite(CONSTANTE) para cada Array de string é 2, e nesse caso queria que ficasse desta forma:
ENTRADA
arrayList{"1234","2234","1334","1244","4321"};
SAÍDA
ret[0]={",1234,2234,"};
ret[1]={",1334,1244,"};
ret[2]={",4321,"};
Meu método está da seguinte forma atualmente :
int constante = 2; int n = Convert.ToInt32(decimal.Truncate(al.Count/constante)); if((al.Count % constante) != 0) n = n+1; int j = 0; string[] ret = new string[]{}; for (int i = 0; i < al.Count; i++) { if (i == n) { ret[j] += ","; j++; } ret[j] += "," + al[i].ToString(); }return ret;
Eu verifico a quantidade de itens dividido pelo número máximo de itens para definir quantos arrays de string eu terei, ou seja, tem que ser feito dinamicamente.
O problema é que o Array de strings me obriga a definir um tamanho.
Eu poderia fazer utilizando LINQ? de que forma?
Se existe outra forma, como seria?
Estou necessitado de uma solução, pois, já procurei MUITO no google mas não acho nada que atenda ao que preciso.