C# 将短名称转换为完整名称

C# 将短名称转换为完整名称,c#,string,list,C#,String,List,我有一个列表: List ListaClientes=new List(); ListaClientes.添加(“认证能源”); 添加(“EDIFÍCIO INDUSTRIAL”); 我有一个文本框(TextBox1)可以读取Excel单元格。我还有另一个文本框(TextBox2),我想在列表中显示长名称。 例如,如果TextBox1displayCE,则它必须显示在TextBox2CERTIFIC energyÉT上。如果TextBox1显示EI,则它必须显示在TextBox2EDIFÍCI

我有一个
列表

List ListaClientes=new List();
ListaClientes.添加(“认证能源”);
添加(“EDIFÍCIO INDUSTRIAL”);
我有一个文本框(
TextBox1
)可以读取Excel单元格。我还有另一个文本框(
TextBox2
),我想在列表中显示长名称。 例如,如果
TextBox1
display
CE
,则它必须显示在
TextBox2
CERTIFIC energyÉT
上。如果
TextBox1
显示
EI
,则它必须显示在
TextBox2
EDIFÍCIO INDUSTRIAL

我该怎么做?
谢谢。

您可以使用
字典
实现您的目标:

var dict = new Dictionary<string, string>();
dict.Add("CE", "CERTIFIC ENERGÉT");
...
我没有做过任何错误检查,因此如果字典中不存在密钥,则会引发异常,因此需要处理该异常 因此


进一步阅读

你可以使用
字典
实现你的目标:

var dict = new Dictionary<string, string>();
dict.Add("CE", "CERTIFIC ENERGÉT");
...
我没有做过任何错误检查,因此如果字典中不存在密钥,则会引发异常,因此需要处理该异常 因此

进一步阅读给定的
列表

如果希望缩写作为键,可以使用正则表达式:

对于给定的
列表

如果希望缩写作为键,可以使用正则表达式:

例如,如果textbox1显示CE,则它必须显示在textbox2 CERTIFIC EnergyÉT上。 如果textbox1显示EI,则必须在textbox2 EDIFÍCIO INDUSTRIAL上显示

你可以这样做

var ListaClientes = new List<string>
{
    "CERTIFIC ENERGÉT",
    "EDIFÍCIO INDUSTRIAL"
};

var ce = ListaClientes[0];
string shortcut = "";
ce.Split(' ').ToList().ForEach(i => shortcut += i[0]);

textBox1.Text = shortcut;
textBox2.Text = ce;
var ListaClientes=新列表
{
“认证能源”,
“EDIFÍCIO工业”
};
var ce=ListaClientes[0];
字符串快捷方式=”;
ce.Split(“”).ToList().ForEach(i=>shortcut+=i[0]);
textBox1.Text=快捷方式;
textBox2.Text=ce;
例如,如果textbox1显示CE,则它必须显示在textbox2 CERTIFIC EnergyÉT上。 如果textbox1显示EI,则必须在textbox2 EDIFÍCIO INDUSTRIAL上显示

你可以这样做

var ListaClientes = new List<string>
{
    "CERTIFIC ENERGÉT",
    "EDIFÍCIO INDUSTRIAL"
};

var ce = ListaClientes[0];
string shortcut = "";
ce.Split(' ').ToList().ForEach(i => shortcut += i[0]);

textBox1.Text = shortcut;
textBox2.Text = ce;
var ListaClientes=新列表
{
“认证能源”,
“EDIFÍCIO工业”
};
var ce=ListaClientes[0];
字符串快捷方式=”;
ce.Split(“”).ToList().ForEach(i=>shortcut+=i[0]);
textBox1.Text=快捷方式;
textBox2.Text=ce;

我想对所有的帮助说声谢谢

我将尝试解释我需要什么: 我有两个文本框——一个从datagridview读取数据(textbox8Cod),另一个必须显示长名称描述(textBox7Serv)。 例如,如果textBox8Cod显示EDMO,则它必须显示在textBox7Serv,CERTIFICAÃO ENERGÉTICA上

这是一个DataGridView事件:

private void DataGridViewNE_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
    if (dataGridViewNE.Rows[e.RowIndex].Cells[e.ColumnIndex].Value != null)
    {
        //Reads data:
        dataGridViewNE.CurrentRow.Selected = true;
        textBox8Cod.Text = dataGridViewNE.Rows[e.RowIndex].Cells["F8"].FormattedValue.ToString();

        //Translate codes
        var ListaClientes = new List<string>
    {"CERTIFICAÇÃO ENERGÉTICA","EDIFÍCIO INDUSTRIAL OU ARMAZÉM"};
        var ce = ListaClientes[0];
        string shortcut = "";
        ce.Split(' ').ToList().ForEach(i => shortcut += i[0]);
        textBox8Cod.Text = shortcut;
        textBox7Serv.Text = ce;
    }
private void DataGridViewNE\u CellContentClick(对象发送方,DataGridViewCellEventArgs e)
{
if(dataGridViewNE.Rows[e.RowIndex].Cells[e.ColumnIndex].Value!=null)
{
//读取数据:
dataGridViewNE.CurrentRow.Selected=true;
textBox8Cod.Text=dataGridViewNE.Rows[e.RowIndex].Cells[“F8”].FormattedValue.ToString();
//翻译代码
var ListaClientes=新列表
{“能源认证”、“阿玛兹工业大厦”};
var ce=ListaClientes[0];
字符串快捷方式=”;
ce.Split(“”).ToList().ForEach(i=>shortcut+=i[0]);
textBox8Cod.Text=快捷方式;
textBox7Serv.Text=ce;
}

我尝试了最后一种解决方案,但不起作用。谢谢。

我想对所有的帮助说声谢谢

我将尝试解释我需要什么: 我有两个文本框——一个从datagridview读取数据(textbox8Cod),另一个必须显示长名称描述(textBox7Serv)。 例如,如果textBox8Cod显示EDMO,则它必须显示在textBox7Serv,CERTIFICAÃO ENERGÉTICA上

这是一个DataGridView事件:

private void DataGridViewNE_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
    if (dataGridViewNE.Rows[e.RowIndex].Cells[e.ColumnIndex].Value != null)
    {
        //Reads data:
        dataGridViewNE.CurrentRow.Selected = true;
        textBox8Cod.Text = dataGridViewNE.Rows[e.RowIndex].Cells["F8"].FormattedValue.ToString();

        //Translate codes
        var ListaClientes = new List<string>
    {"CERTIFICAÇÃO ENERGÉTICA","EDIFÍCIO INDUSTRIAL OU ARMAZÉM"};
        var ce = ListaClientes[0];
        string shortcut = "";
        ce.Split(' ').ToList().ForEach(i => shortcut += i[0]);
        textBox8Cod.Text = shortcut;
        textBox7Serv.Text = ce;
    }
private void DataGridViewNE\u CellContentClick(对象发送方,DataGridViewCellEventArgs e)
{
if(dataGridViewNE.Rows[e.RowIndex].Cells[e.ColumnIndex].Value!=null)
{
//读取数据:
dataGridViewNE.CurrentRow.Selected=true;
textBox8Cod.Text=dataGridViewNE.Rows[e.RowIndex].Cells[“F8”].FormattedValue.ToString();
//翻译代码
var ListaClientes=新列表
{“能源认证”、“阿玛兹工业大厦”};
var ce=ListaClientes[0];
字符串快捷方式=”;
ce.Split(“”).ToList().ForEach(i=>shortcut+=i[0]);
textBox8Cod.Text=快捷方式;
textBox7Serv.Text=ce;
}

我尝试了上一个解决方案,但它不起作用。谢谢。

您看过Dictionary泛型类吗?您可以使用它通过包含映射的字典将一个字符串映射到另一个字符串。您看过Dictionary泛型类吗?您可以使用它通过包含映射的字典将一个字符串映射到另一个字符串。
 TextBox2.Text = dict.TryGetValue(TextBox1.Text.Trim(), out var text) 
   ? text            // we have a corresponding text
   : TextBox1.Text;  // we don't have corresponding text, let's repeat TextBox1.Text
var ListaClientes = new List<string>
{
    "CERTIFIC ENERGÉT",
    "EDIFÍCIO INDUSTRIAL"
};

var ce = ListaClientes[0];
string shortcut = "";
ce.Split(' ').ToList().ForEach(i => shortcut += i[0]);

textBox1.Text = shortcut;
textBox2.Text = ce;
private void DataGridViewNE_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
    if (dataGridViewNE.Rows[e.RowIndex].Cells[e.ColumnIndex].Value != null)
    {
        //Reads data:
        dataGridViewNE.CurrentRow.Selected = true;
        textBox8Cod.Text = dataGridViewNE.Rows[e.RowIndex].Cells["F8"].FormattedValue.ToString();

        //Translate codes
        var ListaClientes = new List<string>
    {"CERTIFICAÇÃO ENERGÉTICA","EDIFÍCIO INDUSTRIAL OU ARMAZÉM"};
        var ce = ListaClientes[0];
        string shortcut = "";
        ce.Split(' ').ToList().ForEach(i => shortcut += i[0]);
        textBox8Cod.Text = shortcut;
        textBox7Serv.Text = ce;
    }