你如何抓住字符串中的第一个字母?

时间:2011-11-18 18:32:51

标签: c# entity-framework

我正在使用一个包含3个字段的实体(Employee):FirstName,LastName和&登录

我想获取姓氏和firstname字段的第一个字母,并将其写入登录字段。我如何抓住名字的第一个字母?

感谢您的帮助。

5 个答案:

答案 0 :(得分:4)

就像:

一样简单
if (!string.IsNullOrEmpty(Employee.FirstName))
{
    string firstLetter = Employee.FirstName.SubString(0, 1);
}

通过它,您可以将第一个字母作为字符串,并使用此字符:

if (!string.IsNullOrEmpty(Employee.FirstName))
{
    char firstLetter = Employee.FirstName[0];
}

答案 1 :(得分:2)

要获取第一个字符(不一定是字母),请在字符串中使用索引:

char c = employee.FirstName[0];

您可能还想首先检查字符串是否为非空且非空并剥离前导空格,并且第一个字符实际上是一个字母:

if (employee != null && employee.FirstName != null) {
    string name = employee.FirstName.TrimStart();
    if (name.Length > 0) {
        char firstChar = name[0];
        if (char.IsLetter(firstChar)) {
            employee.Login = firstChar.ToString();
        }
    }
}

答案 2 :(得分:2)

char firstCharOfFirstName = someEmployee.FirstName[0];

如果FirstName字段可以有前导空格,则可以执行以下操作:

char firstCharOfFirstName = someEmployee.FirstName.Trim()[0];

(正如其他答案提到检查空字符串和null字符串一样好)

答案 3 :(得分:1)

请记住,如果

,SubString()或FirstName [0]将抛出ArgumentOutOfRangeExceptionIndexOutOfRangeException
FirstName == string.Empty

所以,这段代码至少会避免异常:

if(str2 != null)
{
    char result = (str2.Length > 0)
        ? str2[0]
        : (char)0;
}

如果字符串为空,请不要忘记此代码将返回错误结果!

答案 4 :(得分:0)

如果名字可能为空,则在获得第一个字母时必须检查:

FirstName.Substring(0, Math.Min(FirstName.Length, 1))

如果FirstName字符串为空,这将为您提供一个空字符串,否则将第一个字符作为字符串,以便您可以将其与姓氏连接。