Как вы берете первую букву в строке? - PullRequest
3 голосов
/ 18 ноября 2011

Я работаю с сущностью (Сотрудником), которая имеет 3 поля: Имя, Фамилия и Логин

Я хочу взять фамилию и первую букву поля имени и записать это в поле для входа. Как мне взять первую букву имени?

Спасибо за любую помощь.

Ответы [ 5 ]

4 голосов
/ 18 ноября 2011

Так же просто, как:

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

С этим вы получите первую букву в виде строки и с этим символом:

if (!string.IsNullOrEmpty(Employee.FirstName))
{
    char firstLetter = Employee.FirstName[0];
}
2 голосов
/ 18 ноября 2011
char firstCharOfFirstName = someEmployee.FirstName[0];

Если поле FirstName может иметь начальные пробелы, вы можете сделать:

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

(Как уже упоминалось в других ответах, полезно проверить пустую строку и null строку)

2 голосов
/ 18 ноября 2011

Чтобы получить первый символ (не обязательно буква), используйте индекс в строке:

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();
        }
    }
}
1 голос
/ 18 ноября 2011

Помните, что SubString () или FirstName [0] будут выбрасывать ArgumentOutOfRangeException или IndexOutOfRangeException, если

FirstName == string.Empty

Итак, этот код как минимум избежит исключения:

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

Не забудьте, что этот код вернет ложный результат, если строка пуста!

0 голосов
/ 18 ноября 2011

Если имя может быть пустым, вы должны проверить это при получении первой буквы:

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

Это даст вам пустую строку, если строка FirstName пуста, в противном случае первый символ в виде строки, так что вы можете объединить ее с фамилией.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...