Convert.ToInt32()一个带有逗号的string
我有一个string,有时有逗号分隔数字1,500 ,我需要将其转换为一个Int,目前它是抛出一个exception,有人可以告诉我如何解决这个问题,所以有时我可能会input逗号和其他时间用逗号,它仍然会转换。 
 你可以使用int.Parse并添加NumberStyles.AllowThousands标志: 
 int num = int.Parse(toParse, NumberStyles.AllowThousands); 
 或者int.TryParse让你知道操作是否成功: 
 int num; if (int.TryParse(toParse, NumberStyles.AllowThousands, CultureInfo.InvariantCulture, out num)) { // parse successful, use 'num' } 
 您可以使用Decimal.Parse()然后将结果转换为int 。 这也适用于当前的文化,或者你可以指定一个CultureInfo来使用。 不需要手动处理逗号,小数点等,这些都是内置到.NET中。 
如果你不必担心各个国家的规则(例如,有些使用逗号作为小数位而不是千位分隔符),那么只需先删除逗号。
例如
 string nastyNumber = "1,234"; int result = int.Parse(nastyNumber.Replace(",", "")); 
(如果你需要浮点数,用intreplaceint)
什么是删除逗号的蛮力build议? 如果string像“1,1,1”一样呢? 这是一个有效的号码? 删除逗号将使其成为一个有效的数字,并使转换语义不正确。
有一个原因NumberStyles存在和Int.Parse()方法可以parsing或不考虑数字样式。
 在将其转换为int之前replace(';', '')可以先replace(';', '') 。 
 您可以在调用Convert.ToInt32()之前用String.Emptyreplace逗号,也可以使用带有NumberStyles.AllowThousands Int32.Parse()或Int32.TryParse()作为参数之一。 
Int32.Parse
Int32.TryParse
你可以使用代码
 int num = Strings.Replace(str, ",", string.Empty); 
这将用“”(空string)replace所有出现的“,”。 所以100万转1000000