Adicionando objeto ao JArray, substituindo o primeiro elemento
Ao adicionar um novo objeto a um JArray, cada objeto é adicionado à primeira entrada na matriz ([0]), além de ser anexado à matriz.
response = client.GetAsync(new Uri(urlIndexDoc)).Result;
result = response.Content.ReadAsStringAsync().Result;
JObject OPDDoc = JObject.Parse(result);
JArray indexCEM = new JArray();
JObject oNew = new JObject();
int idxcount = Convert.ToInt32(ConfigurationManager.AppSettings["IndexCount"]) + 1;
for (int i = 1; i < idxcount ; i++)
{
string istring = i.ToString();
var idxname = OPDDoc["IndexName_" + istring];
if (idxname != null)
{
oNew["PriceIndexId"] = istring;
oNew["IndexName"] = idxname;
oNew["IndexPrice"] = OPDDoc["IndexPrice_" + istring];
indexCEM.Add(oNew);
}
}
Eu posso vê-lo sobrescrever o primeiro elemento no depurador toda vez que o próximo objeto for adicionado. O resultado é que o último item anexado acaba no indexCEM [0], além de ser o último item. Estou faltando alguma coisa aqui ou isso é um bug?
Usando o VS 2013 e o Json.Net 5.08 em um aplicativo de console.