用C#解释这个python表达式

时间:2011-08-24 20:31:58

标签: c# python ironpython

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

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

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

5 个答案:

答案 0 :(得分:5)

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

因此,如果last_filejamesbond007.secretagentlast_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) );

{{1}}

答案 1 :(得分:4)

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

答案 2 :(得分:2)

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

E.g。 measure009.bin -> measure009 -> 009 -> 9

答案 3 :(得分:1)

因为你说'int cast'我会假设你已经知道值被转换为int。原因是在转换之前,值是int的字符串表示形式,python不允许使用'string int'作为int。

哦,这是蟒蛇;你不需要沉迷于';'行结束了; P

答案 4 :(得分:0)

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