foreach (var charac in Artdocument.QuerySelectorAll("section.pi-item")) //Берем все хактеристики, включая дополнительные
{
if (charac.QuerySelector("h2.pi-header").TextContent == "Характеристики") // Смотри мтолько основные характеристики
{
Prop.Clear(); // Очищаем свойства перед их переборкой
foreach (var character in charac.QuerySelectorAll("div.pi-item")) // Берем все свойства основых характеристик
{
if (!character.QuerySelector("h3.pi-data-label").TextContent.Contains("Вес")) // Отсекаем характеристику - вес
{
Propname = character.QuerySelector("h3.pi-data-label").TextContent;
Min = character.QuerySelector("div.pi-data-value").TextContent.Substring(character.QuerySelector("div.pi-data-value").TextContent.IndexOf("[") + 1, character.QuerySelector("div.pi-data-value").TextContent.IndexOf(";") - character.QuerySelector("div.pi-data-value").TextContent.IndexOf("[") - 1).Replace(".", ",");
Max = character.QuerySelector("div.pi-data-value").TextContent.Substring(character.QuerySelector("div.pi-data-value").TextContent.IndexOf(";") + 1, character.QuerySelector("div.pi-data-value").TextContent.IndexOf("]") - character.QuerySelector("div.pi-data-value").TextContent.IndexOf(";") - 1).Replace(" ", "").Replace(".", ",");
if (character.QuerySelector("div.pi-data-value").GetElementsByTagName("font").Attr("color").First() == "#a90000")
{ //Красный - плохой эффект
Character = "Negative";
}
else
{ // Зеленый - положительный
Character = "Positive";
}
// Console.WriteLine(Propname);
// Console.WriteLine(Character);
// Console.WriteLine(Min);
// Console.WriteLine(Max);
Prop.Add(new ArtProperty(Propname, Character, Min, Max));
}
}
Artefacts.Add(new Artefact(Artname, Prop));
}
}
Привет всем опытным разработчикам! Создаю свойство артефакта и использую кешевую переменную Prop. Добавляю в нее свойства вот таким куском кода
Prop.Add(new ArtProperty(Propname, Character, Min, Max))
После - создаю новый объект класса Artefact и пихаю его в Artefacts = new List<Artefact>() вот таким кодом
Artefacts.Add(new Artefact(Artname, Prop))
В чем вопрос? Когда чищу список (Prop.clear) (чтобы обработать новый артефакт и задать ему новые свойства - чистятся свойства уже созданного артефакта в Artefacts ???? Я думаю что это связано с ссылочными типами переменных. Но, как вы понимаете я могу ошибаться). Подскажите - в чем проблема?


Propэто ссылка на список, пока вы ей не переприсвоите значение, она будет указывать туда, куда и должна.Prop = new List<ArtProperty>()вместоProp.Clear()надо. – aepot Nov 15 '23 at 20:10