Есть массив объектов:
ist<product_description> product_descriptions = new List<product_description>();
product_descriptions.Add(new product_description());
product_descriptions.Add(new product_description());
product_descriptions.Add(new product_description());
И собственно сам объект:
public class product_description
{
public string name { get; set; }
public string description { get; set; }
public string meta_title { get; set; }
public string meta_description { get; set; }
}
Никак не могу прийти к решению как с помощью рефлексии получить путь к свойствам в таком формате:
product_description[0][name]
product_description[0][description]
product_description[0][meta_title]
product_description[0][meta_description]
product_description[1][name]
product_description[1][description]
product_description[1][meta_title]
product_description[1][meta_description]
product_description[2][name]
product_description[2][description]
product_description[2][meta_title]
product_description[2][meta_description]
Получаем названия свойств, получаем название типа, выводим на экран
List<product_description> product_descriptions = new List<product_description>();
product_descriptions.Add(new product_description());
product_descriptions.Add(new product_description());
product_descriptions.Add(new product_description());
var props = typeof(product_description).GetProperties()
.Select(x => x.Name)
.ToArray();
var typename = nameof(product_description);
for (var i = 0; i < product_descriptions.Count; i++)
foreach (var p in props)
Console.WriteLine($"{typename}[{i}][{p}]");
Результат
product_description[0][name]
product_description[0][description]
product_description[0][meta_title]
product_description[0][meta_description]
product_description[1][name]
product_description[1][description]
product_description[1][meta_title]
product_description[1][meta_description]
product_description[2][name]
product_description[2][description]
product_description[2][meta_title]
product_description[2][meta_description]
using System;
using System.Collections.Generic;
using System.Linq;
public class product_description
{
public string name { get; set; }
public string description { get; set; }
public string meta_title { get; set; }
public string meta_description { get; set; }
}
public class Program
{
public static void Main()
{
List<product_description> product_descriptions = new List<product_description>();
product_descriptions.Add(new product_description(){
name = "name0",
description = "description0",
meta_title = "meta_title0",
meta_description = "meta_description0"
});
product_descriptions.Add(new product_description(){
name = "name1",
description = "description1",
meta_title = "meta_title1",
meta_description = "meta_description1"
});
product_descriptions.Add(new product_description(){
name = "name2",
description = "description2",
meta_title = "meta_title2",
meta_description = "meta_description2"
});
var props = typeof(product_description).GetProperties().ToArray();
for (var i = 0; i < product_descriptions.Count; i++)
{
foreach (var p in props)
{
Console.WriteLine(p.GetValue(product_descriptions[i]));
}
}
}
}
Виртуальный выделенный сервер (VDS) становится отличным выбором
Имею XML с сложной структурой (CommerceML) и нужно выпарсить некоторые значения оттуда