Я написал фрагмент для моей большой проблемы, где я устанавливаю значение в том же объекте после чтения и форматирования. Пока значение читается из местоположения объекта, но оно не устанавливает его.
Я обращаюсь к объекту на основе индекса и свойства.
class Student
{
public string City { get; set; }
public double value1 { get; set; }
public double value2 { get; set; }
}
Выше POCO используется для инициализации списка. Ниже приведен код, по которому возникает проблема
class ClassTest
{
public static List<dynamic> GetUpdatedListCurrency(string[] CurrecyColumns, List<dynamic> dynamicList)
{
int Count = CurrecyColumns.Count();
string first = CurrecyColumns.First();
string two = CurrecyColumns.Skip(1).First();
for (int i = 0; i < dynamicList.Count; i++)
{
var t = ((double)(dynamicList[i][first])).ToString("N", CultureInfo.CreateSpecificCulture("en-US"));
var tt = ((double)(dynamicList[i][two])).ToString("N", CultureInfo.CreateSpecificCulture("en-US"));
//Formatted value is availble at t and tt but it is not set back to that object
dynamicList[i][first] = t;
dynamicList[i][two] = tt;
}
return dynamicList;
}
static void Main()
{
var list = new List<Student>()
{
new Student() { City="Noida", value1 = 44412, value2 = 33341 },
new Student() { City="Delhi", value1 = 11212, value2 = 3421 }
};
var converter = new Newtonsoft.Json.Converters.ExpandoObjectConverter();
dynamic expandoObjectList = JsonConvert.DeserializeObject<List<ExpandoObject>>(JsonConvert.SerializeObject(list), converter);
string Columns = " value1 as value3, value2 as value4";
var res = ((List<ExpandoObject>)expandoObjectList)
.ToDynamicList().AsQueryable()
.Select("new (" + Columns + ")")
.ToDynamicList().ToList();
string str = "value3,value4";
var updatedList = GetUpdatedListCurrency(str.Split(','), res);
}
}