Как конвертировать и анализировать различные типы данных в C#
Убедитесь, что вы работаете с правильными типами данных и знаете, как их конвертировать.
Когда вы объявляете новую переменную в C#, вы обычно инициализируете ее определенным типом данных. Это может быть целое число, десятичное, логическое значение, строка или другой тип данных.
Вы можете преобразовать значение из одного типа данных в другой. Например, если вы конвертируете строку в целое число, вам нужно сначала проанализировать значение. Вот несколько различных способов преобразования и анализа значений.
Зачем вам нужно конвертировать или анализировать данные?
Примером того, когда вам может потребоваться анализ данных, является запрос пользовательского ввода в консольном приложении C#:
Console.WriteLine("Enter your age:");
string salary = Console.ReadLine();
В этом случае пользователь вводит целочисленное значение, но приложение по умолчанию сохранит его в виде строки. Если вы попытаетесь использовать строковое значение в каких-либо вычислениях, вы получите ошибку компиляции:
Другая причина преобразования типов данных — доступ к определенным методам, доступным только для определенного типа данных. Например, структура DateTime содержит функцию, позволяющую добавлять минуты. Если бы вместо этого вы использовали строку, у вас не было бы доступа к методу:
Вы также можете преобразовать значение в другой тип данных, если вам нужно следовать структуре типа данных класса, созданного в C#, или структуры в C#.
Как конвертировать и анализировать различные типы данных
Вы можете анализировать различные типы данных, такие как целые числа, двойные значения, логические типы и типы даты и времени.
Строки в целые числа
Чтобы преобразовать строку в целое число, используйте метод Parse():
string strInt = "45";
int int32 = Int32.Parse(strInt);
Console.WriteLine(int32); // output: 45
Вы также можете разобрать строку на целые числа разного размера, например Int16, Int32 или Int64.
int int16 = Int16.Parse(strInt);
Console.WriteLine(int16); // output: 45
Если вы используете метод Parse(), убедитесь, что строковое значение представляет собой целое число. Если вы попытаетесь проанализировать нецелое значение, например «Привет», вы получите ошибку анализа во время выполнения.
string invalidString = "Hello";
int invalidResult = Int32.Parse(invalidString);
Вы также можете использовать метод TryParse() для перехвата любых исключений, которые могут возникнуть при синтаксическом анализе:
int tryParseResult = 0;
if (Int32.TryParse(invalidString, out tryParseResult))
{
Console.WriteLine(tryParseResult);
}
else
{
Console.WriteLine("Something went wrong");
}
Чтобы преобразовать целое число обратно в строку, используйте метод ToString():
string intString = 45.ToString();
Console.WriteLine(intString); // output: 45
Струны для парного разряда
Преобразование строки в двойное число очень похоже на преобразование одной строки в целое число. Используйте метод Parse() из класса Double:
string strDouble = "90.5";
double d = Double.Parse(strDouble);
Console.WriteLine(d); // output: 90.5
Как и в случае с целыми числами, вы также можете использовать метод TryParse() для обнаружения любых ошибок синтаксического анализа, которые могут возникнуть:
string invalidStringDouble = "Hello";
double tryParseDouble = 0;
if (Double.TryParse(invalidStringDouble, out tryParseDouble))
{
Console.WriteLine(tryParseDouble);
}
Чтобы преобразовать двойное число обратно в целое число, используйте метод ToString():
double dDouble = 90.5;
string dString = dDouble.ToString();
Console.WriteLine(dString); // output: 90.5
Двойные числа в целые числа
Вы можете использовать приведение для преобразования двойного числа в целое число. Поскольку целое число хранит только целое число, при преобразовании будут удалены десятичные знаки. Например, при преобразовании «12,34» будет сохранено только значение «12».
double dValue = 12.34;
int iValue = (int)dValue;
Console.WriteLine(iValue); // output: 12
Вы также можете привести целое число обратно к двойному:
dValue = (double)iValue;
Console.WriteLine(dValue); // output: 12
Строки и логические значения
Чтобы преобразовать строку в логическое значение, используйте метод Parse() или ToBoolean():
string stringBool = "True";
bool b = bool.Parse(stringBool);
// or
b = Convert.ToBoolean(stringBool);
Console.WriteLine(b); // output: true
Чтобы преобразовать логическое значение обратно в строку, используйте метод ToString():
string strTrue = true.ToString();
string strFalse = false.ToString();
Целые числа и логические значения
Чтобы преобразовать целое число в логическое значение, используйте метод ToBoolean() для преобразования «1» или «0» в эквивалентное логическое значение. Значение «1» преобразуется в «истину», а «0» преобразуется в «ложь»:
int falseBit = 0;
int trueBit = 1;
Console.WriteLine(Convert.ToBoolean(falseBit)); // output: false
Console.WriteLine(Convert.ToBoolean(trueBit)); // output: true
Вы также можете передать в метод ToBoolean() целочисленное значение, отличное от «1» или «0». По умолчанию метод по-прежнему возвращает «истину»:
int invalidBit = 8;
Console.WriteLine(Convert.ToBoolean(invalidBit)); // output: true
Чтобы преобразовать логическое значение обратно в целое число, используйте метод Convert.ToInt32(). Преобразование «истина» вернет «1», а преобразование «ложь» вернет «0».
bool iBool = true;
int bInt = Convert.ToInt32(iBool);
Console.WriteLine(bInt); // output: 1
Строки для DateTime
Чтобы преобразовать строку в формат даты и времени, используйте метод DateTime.Parse():
DateTime newDateTime = DateTime.Parse("01/01/2018 00:00:00");
Console.WriteLine(newDateTime); // output: 01/01/2018 00:00:00
Чтобы преобразовать дату и время обратно в строку, используйте метод ToString():
DateTime dt = new DateTime(2018, 1, 1);
string dtString = dt.ToString();
Console.WriteLine(dtString); // output: 01/01/2018 00:00:00
Анализ значений различных типов данных
Теперь вы понимаете, как конвертировать значения из одного типа данных в другой. Это не единственные преобразования, поэтому не стесняйтесь узнать больше о других типах данных в C#.
Вы также можете узнать, как работают другие типы данных в других языках, например в JavaScript.