这个python表达式的C#等价物是什么?
file_no = int (last_file.Name.Replace(last_file.Extension,"")[-3:]);
我了解[-3:]
的作用,但不了解(int)
演员。
答案 0 :(得分:5)
它用空字符串替换文件名的扩展名,将最后三个字符作为字符串,并尝试转换为int。
因此,如果last_file
为jamesbond007.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)
);
。
{{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(...)
或使用转换器调用。