Чтобы получить реальный тип файла файла, вы должны проверить его заголовок, который не будет изменен, даже если расширение изменено. Вы можете получить список заголовков здесь и использовать в своем коде что-то вроде этого:
using(var stream = new FileStream(fileName, FileMode.Open, FileAccess.Read))
{
using(var reader = new BinaryReader(stream))
{
// read the first X bytes of the file
// In this example I want to check if the file is a BMP
// whose header is 424D in hex(2 bytes 6677)
string code = reader.ReadByte().ToString() + reader.ReadByte().ToString();
if (code.Equals("6677"))
{
//it's a BMP file
}
}
}
Если я правильно понял, это должно сработать:
sum(a != b for a, b in zip(listA, listB))
Дает ожидаемый результат 2
.
Обратите внимание, что поскольку в описании вашей проблемы указано, что порядок важен, наборы здесь не будут использоваться, поскольку они не упорядочены.