2011-08-24 22 views
1

這個python表達式的C#等價物是什麼?在C中解釋我這個python表達式#

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

我明白[-3:]做,但不是(int)演員。

+0

什麼是[-3:],請解釋 –

+1

[-3:]是從第3個字符到最後一個字符的片段 – brennie

+0

@Senad http://diveintopython.org/native_data_types/lists .html –

回答

4

將值傳遞給int構造函數將嘗試將其變爲int(或long,如果它太大)。認爲Convert.ToInt32()

+0

感謝所有回答的人。我真的很感激。 –

2

我不能告訴你在C#中的答案,但我可以解釋這個表達式的作用:它從文件名,然後最後3個字符的擴展名,並試圖將它們轉換爲int。

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

0

這不是一個演員。 int將參數轉換爲整數,因此最接近的C#表達式將是int.Parse(...)或使用轉換器的調用。

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

這是更好的答案不知道爲什麼這有較低的選票。 – PythEch

1

因爲你說'int cast',我會假設你已經知道該值正在轉換爲int。原因是在轉換之前,該值是一個int的字符串表示形式,python不會讓你使用'string int'作爲int。

哦,它是python;你不需要迷戀';'任何一行的結尾; P