Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah saya dapat menukar rentetan ke penghitungan di C#?

Bagaimanakah saya dapat menukar rentetan ke penghitungan di C#?

Susan Sarandon
Lepaskan: 2025-02-02 00:46:16
asal
544 orang telah melayarinya

How Can I Efficiently Convert Strings to Enumerations in C#?

mengoptimumkan penukaran rentetan-to-enum dalam c#

C# menawarkan beberapa cara untuk menukar rentetan ke dalam nilai enum, tetapi pendekatan langsung

tidak selalu sesuai. Mari kita meneroka alternatif yang cekap. StatusEnum MyStatus = StatusEnum.Parse("Active");

memanfaatkan Enum.TryParse

untuk .NET Core dan .NET Framework 4.0 dan kemudian, kaedah

menyediakan penyelesaian yang mantap: Enum.TryParse

Enum.TryParse("Active", out StatusEnum myStatus);
Salin selepas log masuk
C# 7's Inline Out Variables Meningkatkan kebolehbacaan:

var myStatus = Enum.TryParse("Active", out var result) ? result : default;
Salin selepas log masuk

kaedah lanjutan tersuai (untuk rangka kerja yang lebih lama atau keperluan khusus)

Jika

tidak tersedia, kaedah lanjutan tersuai menawarkan fleksibiliti: Enum.TryParse

public static T ParseEnum<T>(string value)
{
    return (T)Enum.Parse(typeof(T), value, true);
}

var myStatus = ParseEnum<StatusEnum>("Active");
Salin selepas log masuk
Pelanjutan yang lebih komprehensif mengendalikan input null atau tidak sah dengan anggun:

public static T ToEnum<T>(this string value, T defaultValue)
{
    if (string.IsNullOrEmpty(value))
    {
        return defaultValue;
    }

    T result;
    return Enum.TryParse<T>(value, true, out result) ? result : defaultValue;
}

var myStatus = "Active".ToEnum(StatusEnum.None);
Salin selepas log masuk

Nota penting pada sambungan: Walaupun kaedah lanjutan berguna, terlalu banyak boleh menyebabkan kekacauan kod. Pertimbangkan konteks dan konflik yang berpotensi sebelum menambah sambungan kepada jenis terbina dalam seperti . Menggunakan kelas penolong statik mungkin pendekatan yang lebih bersih dalam beberapa kes. string

Atas ialah kandungan terperinci Bagaimanakah saya dapat menukar rentetan ke penghitungan di C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan