Syntax Problem?



  • Hi!

    Hab derzeit etwas C#-Code vor mir, welches ich in
    C++/CLI umschreiben will.
    An sich ist das ja kein Problem... aber schaffs irgendwie nicht diese
    Zeile Code umzuschreiben.

    Hier der Teil des C#-Codes, der einwandfrei funktioniert:

    //...
    Body b = myDoc.MainDocumentPart.Document.Body;
    Paragraph p = b.Descendants<Paragraph>().ElementAtOrDefault(0);
    //...
    

    Und hier will ich es in C++/CLI umschreiben, klappt aber mit dieser Syntax anscheinend nicht:

    //...
    Body^ b = myDoc->MainDocumentPart->Document->Body; //klappt
    Paragraph^ p = b->Descendants<Paragraph^>()->ElementAtOrDefault(0); //KLAPPT NICHT
    //...
    

    MVS gibt mir diesen Error aus:
    1> DIW.cpp
    1>DIW.cpp(144): error C2039: 'ElementAtOrDefault' : is not a member of 'System::Collections::Generic::IEnumerable<T>'
    1> with
    1> [
    1> T=DocumentFormat::OpenXml::Wordprocessing::Paragraph ^
    1> ]
    1>
    1>Build FAILED.

    Thanks in advance. 😉



  • In C# läuft das als Erweiterungsmethode. In C++/CLI gibts das ned, deshalb so:

    Body^ b;// = myDoc->MainDocumentPart->Document->Body; //klappt 
    Paragraph^ p = System::Linq::Enumerable::ElementAtOrDefault(b->Descendants<Paragraph^>(), 0);
    


  • Vielen Dank an dieser Stelle 🙂
    Der von dir angegebene Code passt!


Anmelden zum Antworten