Использование суммирования нескольких переменных с помощью i ++ - PullRequest
1 голос
/ 13 января 2020

Я хочу суммировать гибкое количество файлов PDF, которые пользователь может добавить в форму. Для контролируемого количества файлов, которыми я могу управлять, но я бы хотел, чтобы он был гибким.

Вот как я делаю это сейчас для 2 файлов PDF:

 private void MergePdf_DragDrop(object sender, DragEventArgs e)
 {
     e.Effect = DragDropEffects.None;
     string[] files = (string[])e.Data.GetData(DataFormats.FileDrop);
     if (files.Length > 1) {return; }

     using (PdfDocument outPdf = new PdfDocument())
     using (PdfDocument pdf0 = PdfReader.Open(files[0], PdfDocumentOpenMode.Import))
     using (PdfDocument pdf1 = PdfReader.Open(files[1], PdfDocumentOpenMode.Import))
     {
         CopyPages(pdf0, outPdf);
         CopyPages(pdf1, outPdf);

         outPdf.Save("file1and2.pdf");

     }
  }

 void CopyPages(PdfDocument from, PdfDocument to)
 {
     for (int i = 0; i < from.PageCount; i++)
     {
         to.AddPage(from.Pages[i]);
     }
 }

Теперь я бы хотел обновите код, чтобы пользователю было разрешено удалить любое количество файлов. Это означало бы, что мне нужно создать больше pdf[i] переменных в зависимости от размера моего массива files[].

Возможно ли это в c# или я должен просто создать 100 из этих переменных и сделать try{} catch{} на всех из них?

1 Ответ

4 голосов
/ 13 января 2020

Вы можете l oop над файлами:

using (PdfDocument outPdf = new PdfDocument())
{
    foreach (string fileName in files) 
    {
        using (PdfDocument inPdf = PdfReader.Open(fileName, PdfDocumentOpenMode.Import))
        CopyPages(inPdf, outPdf);
    }
    outPdf.Save("file1and2.pdf");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...