@sslaitha, obrigado. Se respondeu suficientemente à sua pergunta, lembre-se de marcá-la como a resposta.
Brandon
3
Observe que se você tiver int i = 10; e use int.ExperimenteParse ("asdf", out i); que vou conter 0 não 10 !!! Isso ocorre porque o TryParse usa uma variável out, não uma ref.
CaffGeek
2
O "cuidado" se aplica ao terceiro exemplo - não ao segundo. Fiquei confuso um pouco, já que esperava que o "isso" se referisse ao exemplo acima, não abaixo.
peter_mcc
22
int myInt = System.Convert.ToInt32(myString);
Como vários outros mencionaram, você também pode usar int.Parse()e int.TryParse().
Se você tiver certeza de que stringsempre será um int:
int myInt = int.Parse(myString);
Se você gostaria de verificar se stringé realmente a intprimeira:
int myInt;
bool isValid = int.TryParse(myString, out myInt); // the out keyword allows the method to essentially "return" a second valueif (isValid)
{
int plusOne = myInt + 1;
}
string varString = "15";
int i = int.Parse(varString);
ou
int varI;
string varString = "15";
int.TryParse(varString, out varI);
int.TryParseé mais seguro, pois se você colocar algo mais varString(por exemplo "fsfdsfs"), obterá uma exceção. Usando int.TryParsequando a string não pode ser convertida em int, ela retornará 0.
int i;
string whatever;
//Best since no exception raisedint.TryParse(whatever, out i);
//Better use try catch on this one
i = Convert.ToInt32(whatever);
y = 0;
for (int i = 0; i < s.Length; i++)
y = y * 10 + (s[i] - '0');
"s" é a string que você deseja converter em um int. Este código assume que você não terá exceções durante a conversão. Portanto, se você sabe que seus dados de string sempre serão algum tipo de valor int, o código acima é a melhor maneira de buscar velocidade pura.
bool result = Int32.TryParse(someString, out someNumeric)
Este método tentará converter someStringem someNumerice retornar um resultdepende se a conversão foi bem-sucedida, truese a conversão foi bem-sucedida e falsese a conversão falhou. Observe que este método não lançará exceção se a conversão falhar como o Int32.Parsemétodo fez e, em vez disso, retorna zero para someNumeric.
Respostas:
Se você tiver certeza de que analisará corretamente, use
int.Parse(string)
Se você não é, use
int i; bool success = int.TryParse(string, out i);
Cuidado! No caso abaixo,
i
será igual a 0, não 10 após oTryParse
.int i = 10; bool failure = int.TryParse("asdf", out i);
Isso ocorre porque
TryParse
usa um parâmetro out , não um parâmetro ref .fonte
int myInt = System.Convert.ToInt32(myString);
Como vários outros mencionaram, você também pode usar
int.Parse()
eint.TryParse()
.Se você tiver certeza de que
string
sempre será umint
:int myInt = int.Parse(myString);
Se você gostaria de verificar se
string
é realmente aint
primeira:int myInt; bool isValid = int.TryParse(myString, out myInt); // the out keyword allows the method to essentially "return" a second value if (isValid) { int plusOne = myInt + 1; }
fonte
int a = int.Parse(myString);
ou melhor ainda, procure
int.TryParse(string)
fonte
string varString = "15"; int i = int.Parse(varString);
ou
int varI; string varString = "15"; int.TryParse(varString, out varI);
int.TryParse
é mais seguro, pois se você colocar algo maisvarString
(por exemplo "fsfdsfs"), obterá uma exceção. Usandoint.TryParse
quando a string não pode ser convertida em int, ela retornará0
.fonte
Se você tiver certeza de que possui um número "real" em sua string, ou se sentir confortável com qualquer exceção que possa surgir, use-o.
string s="4"; int a=int.Parse(s);
Para ter mais controle sobre o processo, use
string s="maybe 4"; int a; if (int.TryParse(s, out a)) { // it's int; } else { // it's no int, and there's no exception; }
fonte
Faça algo como:
var result = Int32.Parse(str);
fonte
int i; string whatever; //Best since no exception raised int.TryParse(whatever, out i); //Better use try catch on this one i = Convert.ToInt32(whatever);
fonte
4 técnicas são comparadas aqui.
O caminho mais rápido acabou sendo o seguinte:
y = 0; for (int i = 0; i < s.Length; i++) y = y * 10 + (s[i] - '0');
"s" é a string que você deseja converter em um int. Este código assume que você não terá exceções durante a conversão. Portanto, se você sabe que seus dados de string sempre serão algum tipo de valor int, o código acima é a melhor maneira de buscar velocidade pura.
No final, "y" terá seu valor int.
fonte
bool result = Int32.TryParse(someString, out someNumeric)
Este método tentará converter
someString
emsomeNumeric
e retornar umresult
depende se a conversão foi bem-sucedida,true
se a conversão foi bem-sucedida efalse
se a conversão falhou. Observe que este método não lançará exceção se a conversão falhar como oInt32.Parse
método fez e, em vez disso, retorna zero parasomeNumeric
.Para obter mais informações, você pode ler aqui:
https://msdn.microsoft.com/en-us/library/f02979c7(v=vs.110).aspx?cs-save-lang=1&cs-lang=csharp#code-snippet-2
&
Como converter string para inteiro em C #
fonte
int i; string result = Something; i = Convert.ToInt32(result);
fonte
Você pode usar qualquer um,
int i = Convert.ToInt32(myString);
ou
int i =int.Parse(myString);
fonte
class MyMath { public dynamic Sum(dynamic x, dynamic y) { return (x+y); } } class Demo { static void Main(string[] args) { MyMath d = new MyMath(); Console.WriteLine(d.Sum(23.2, 32.2)); } }
fonte