Поиск по сайту:

Как конвертировать и анализировать различные типы данных в 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.

Статьи по данной тематике: