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
459 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

<code class="language-csharp">Enum.TryParse("Active", out StatusEnum myStatus);</code>
Salin selepas log masuk
C# 7's Inline Out Variables Meningkatkan kebolehbacaan:

<code class="language-csharp">var myStatus = Enum.TryParse("Active", out var result) ? result : default;</code>
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

<code class="language-csharp">public static T ParseEnum<T>(string value)
{
    return (T)Enum.Parse(typeof(T), value, true);
}

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

<code class="language-csharp">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);</code>
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!

sumber:php.cn
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