Я хочу добавить динамически выбранные элементы в ExpandoObject, а затем распечатать его в виде значения json.если я выбрал 2 значения, он печатает только последнее значение 2 раза. Моя проблема в том, что я выбираю его, печатает только последнее значение.
Мой код: Декларация
dynamic output = new List<dynamic>();
dynamic foo = new ExpandoObject();
List<int> selected = new List<int>();
Переключить функцию переключения:
private void Switch_Toggled(object sender, ToggledEventArgs e)
{
var switch1 = (Switch)sender;
var human = (Human)switch1.BindingContext;
var id = human.retail_modified_item_id;
var name = human.name;
var old_price = human.old_price;
var new_price = human.new_price;
if (switch1.IsToggled)
{
if (!selected.Contains(id))
{
selected.Add(id);
foo.id = id;
foo.name = name;
foo.old_price=old_price;
foo.new_price=new_price;
output.Add(foo);
}
}
else
{
if (selected.Contains(id)) selected.Remove(id);
}
}
Печать значения Json;
string json = Newtonsoft.Json.JsonConvert.SerializeObject(output);
Debug.WriteLine(json);
Мой вывод:
[{"id": 1000739, "name": "Hashbrowns","old_price": 0.99, "new_price": 8.5}, {"id": 1000739, "name": "Hashbrowns", "old_price": 0.99, "new_price": 8.5}]
если я выбрал 2 значения, он печатает только последнее значение 2 раза.