从枚举列表中删除下划线
本文关键字:删除 下划线 列表 枚举 | 更新日期: 2023-09-27 18:33:20
我在组合框中使用带有国家/地区的枚举。所有枚举都位于名为"国家/地区"的类中。其中一些带有像United_States_of_America这样的下划线。我需要在组合框中显示的下划线之前删除它们?
我的想法是使用 Replace("_", " ")
,如果它是一个普通字符串,则很简单,但对于组合框就不那么简单了!因此,我会珍惜一些帮助来解决这个问题吗?谢谢!
private void InitializeGUI()
{
// Fill comboBox with countries
cmbCountries.Items.AddRange(Enum.GetNames(typeof(Countries)));
}
使用 Linq :) 的强大功能
private void InitializeGUI()
{
// Fill comboBox with countries
cmbCountries.Items.AddRange(Enum.GetNames(typeof(Countries))
.Select(c => c.Replace("_", " "));
}
或者使用foreach:
private void InitializeGUI()
{
// Fill comboBox with countries
string[] countryNames = Enum.GetNames(typeof(Countries));
foreach (string countryName in countryNames)
{
cmbCountries.Items.Add(countryName.Replace("_", " "));
}
}
private void InitializeGUI()
{
// Fill comboBox with countries
cmbCountries.Items.AddRange(Enum.GetNames(typeof(Countries))
.Select(c => c.Replace("_", " ")));
}
这将创建一个IEnumerable<string>
,其中包含您从Enum
中选择的名称(干得好,使用Enum
对我来说总是很糟糕),然后替换每个名称的下划线。
你也可以把它写成:
countryNames = from country
in Enum.GetNames(typeof(Countries))
select country.Replace("_", " ");
cmbCountries.Items.AddRange(countryNames);
Enum.GetNames(typeof(Countries)).Select(x => x.Replace("_", " "));