LINQ to XML. Оптимизация метода для сохранения документа - C#

Узнай цену своей работы

Формулировка задачи:

В общем имеем такой метод:
 public void SaveColection(List<Post> postList, string path)
        {
            var doc = new XDocument();
            doc.Add(new XElement("PostCollection"));
            
            foreach (var item in postList)
            {
                doc.Root.Add(new XElement("Post",new XAttribute("Id", item.PostId)
                    , new XElement("Text", item.PostText)
                    , new XElement("Attachments")
                    , new XElement("CountPublished", item.CountPublished)));
                var itemPost=doc.Descendants("Post").First(x => x.Attribute("Id").Value == item.PostId.ToString()).Element("Attachments");// больше всего напрягает вот эта строка
               
                foreach (var el in item.AttachList) 
                {
                    itemPost.Add(new XElement("Attachment"
                        , new XAttribute("AttachId", el.AttachId)
                        , new XElement("AttachAddress", el.AttachPlace)
                        , new XElement("AttachType", el.AttachType)));
                }
            }
 
            doc.Save(path);

        }
думаю, что где что и так понятно, но на всякий случай структура документа
<PostCollection>
  <Post Id="someUInt">
       <Text>SomeText</Text>
        <Attachments>
             <Attachment AttachId="someUInt">
                  <AttachAddress>
                       some path(string)
                   </AttachAddress>
                   <AttachType>
                          typeDoc
                    </AttachType> 
              </Attachment>
        </Attachments>
        <CountPublished>
              counter (some uint)
        </CountPublished>
  </Post>
...
</PostCollection>
ну и описание элемента самого списка postList
uint PostId;
string PostText;
List<Attachment (свой класс)>AttachList;
Чаго хачу? Хачу избавиться от поиска последнего элемента Post, для добавления списка элементов Attachment, ну или на худой конец получать доступ к последнему элементу не выгребая весь список имеющихся постов. PS Код на работоспособность пока не проверялся, так что в нем могут быть ошибки.

Решение задачи: «LINQ to XML. Оптимизация метода для сохранения документа»

textual
Листинг программы
var itemPost=item.Element("Attachments");

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4.4 из 5
Похожие ответы