用c#给我解释一下这个python表达式

本文关键字:一下 表达式 python 解释 | 更新日期: 2023-09-27 18:06:30

这个python表达式的c#等价是什么?

file_no = int (last_file.Name.Replace(last_file.Extension,"")[-3:]);

我理解[-3:]的作用,但不理解(int)的作用。

用c#给我解释一下这个python表达式

它将文件名的扩展名替换为空字符串,将最后三个字符作为字符串并尝试转换为int类型。

如果last_filejamesbond007.secretagent, last_file.Extension.secretagent,那么file_no就变成了7,因为.secretagent被空字符串取代,最后三个字符是007,被解析成7

int file_no = 
    Int32.Parse(
        last_file.Name.Replace(
            last_file.Extension, String.Empty
        )
        .Right(3)
    );

将值传递给int构造函数将尝试将其转换为int(或long,如果它太大)。想想Convert.ToInt32()

我不能在c#中告诉你答案,但我可以解释这个表达式的作用:它从文件名中获取扩展名,然后是最后3个字符,并尝试将这些字符转换为int。

measure009.bin -> measure009 -> 009 -> 9 .

因为你说'整型转换',我将假设你已经知道值被转换为整型。原因是在强制转换之前,该值是int型的字符串表示形式,python不允许您将'string int'用作int型。

哦,它是python;你不需要再纠结于";"的行尾了;P

这不是真正的强制转换。int将参数转换为整数,因此最接近的c#表达式将是int.Parse(...)或使用转换器的调用。