You can only "guarantee" this if the file system does indeed contain matching files. And in that case it would still be best to make sure you get the filenames in alphabetical order, like so:
Pseudocode
List1 -> getfiles(dir,filetype2).OrderBy(x => x.FileName).ToList();
List2 -> getfiles(dir,filetype2).OrderBy(x => x.FileName).ToList();
However, like I said, this depends on the right files existing, and your file filter (say, "*.jpg") not matching any files that do not have twins in your directory.
A more robust solution would be to just retrieve all files of the two file types you want, then search for matches between the results yourself, like so:
Pseudocode
for each filename f1 in List1
get matchine file name f2 in List2
if it exists, add (f1, f2) to results
where the results is then a list of 2-tuples with matching file names.