Well yes -
string
is the type,
str
is the variable you show.
Try:
FilesCompleted(files.ToList(str));
But it may not work: you don't show the context of the code fragment, and the code as shown won't compile - so str may not exist in the exact context you are coding.
Or, as Bill suggests:
FilesCompleted(files.ToList<string>());
But that is unlikely to work either unless there is a implicit conversion from your file class to a string.
Try:
FilesCompleted(files.Select(f => f.Path).ToList());
Assuming it's the file path you are interested in passing to the delegate.