我可以转换为长整型?

我想将long int转换为int

如果long > int.MaxValue的值,我很乐意让它环绕。

什么是最好的方法?

只要(int)myLongValue 。 它将在unchecked上下文(这是编译器的默认值)中完成你想要的任务(放弃MSB并采用LSB)。 如果该值不适合int它将在checked上下文中抛出OverflowException

 int myIntValue = unchecked((int)myLongValue); 
 Convert.ToInt32(myValue); 

虽然我不知道什么时候会比int.MaxValue大。

有时候你并没有对实际值感兴趣,而是把它用作校验和/散列码 。 在这种情况下,内置方法GetHashCode()是一个不错的select:

 int checkSumAsInt32 = checkSumAsIn64.GetHashCode(); 

安全和最快的方法是使用位屏蔽之前铸造…

 int MyInt = (int) ( MyLong & 0xFFFFFFFF ) 

位掩码( 0xFFFFFFFF )值将取决于Int的大小,因为Int大小取决于机器。