Der Code an sich ist etwas länger, aber diese Stelle scheint nicht zu funktionieren.
private List<string> SelectFiles(List<string> fileList)
{
_logger.Log("Bitte geben Sie die Nummern der Handbücher ein, die Sie verarbeiten möchten (kommagetrennt, z.B. 1, 3-5), oder drücken Sie Enter, um alle zu verarbeiten:");
string input = Console.ReadLine();
List<string> selectedFiles = new List<string>();
if (string.IsNullOrEmpty(input))
{
// Wenn keine Auswahl getroffen wurde, alle Dateien verarbeiten
selectedFiles = fileList;
}
else
{
// Verarbeite die ausgewählten Nummern und Bereiche
string[] inputParts = input.Split(',');
HashSet<int> indices = new HashSet<int>();
foreach (string part in inputParts)
{
if (part.Contains('-'))
{
string[] rangeParts = part.Split('-');
if (rangeParts.Length == 2 &&
int.TryParse(rangeParts[0].Trim(), out int start) &&
int.TryParse(rangeParts[1].Trim(), out int end))
{
for (int i = start; i <= end; i++)
{
indices.Add(i);
}
}
}
else if (int.TryParse(part.Trim(), out int index))
{
indices.Add(index);
}
}
foreach (int index in indices)
{
if (index > 0 && index <= fileList.Count)
{
selectedFiles.Add(fileList[index - 1]);
}
}
}
return selectedFiles;
}
Da fehlt sehr sehr viel beim Code, aber es geht um die Eingabe. Ich gebe ein:
1,2,4-6,3 Aber er macht nur was mit 1 2 3 udn 4 bis 6 lässt er weg, warum?