Вопрос о синтаксисе строки - PullRequest
1 голос
/ 26 января 2009

То, что я пытаюсь достичь, - это объединить три строки. Два представлены в виде строк; имя и фамилия, в то время как третий является простым разделителем запятой / пробела. Учитывая следующие строки кода:

//Working code
var sep = ", ";
var fullName = myNewBO[0].LastName + sep + myNewBO[0].FirstName;

//Erronous code
var fullName = myNewBO[0].LastName + ", " + myNewBO[0].FirstName;

Строка возвращается в ячейку в DataGridView. В то время как первый бит кода работает как указано, последний - нет. Строка не отображается в ячейке, как ожидалось. Может кто-нибудь сказать мне, почему последний не работает? Также, если у вас есть лучшее решение проблемы, укажите его.

РЕДАКТИРОВАТЬ: Решено. Как и предполагалось, и указано в нескольких ответах, проблема была в другом месте в моем коде, и две альтернативы делают то же самое. Спасибо за предложения по синтаксису:)

Ответы [ 5 ]

8 голосов
/ 26 января 2009

Я предпочитаю использовать string.Format("{0}, {1}",myNewBO[0].LastName,myNewBO[0].FirstName)

Теперь вы можете абстрагироваться от строки форматирования, если хотите, чтобы она была "First Last", например, вы можете использовать другую строку форматирования.

Редактировать

В ответ на вашу фактическую ошибку, я, как и другие, здесь не вижу, что не так, ваша строка кода должна работать, поэтому возникает вопрос: «Как вы привязываете это значение к сетке?»

Вы делаете это в Eval () или коде и т. Д ....

Одно из предложений - добавить метод ToString (string), который принимает строку формата, после чего вы можете привязаться к оценке метода. И если ваши бизнес-требования изменятся, вы просто измените строку форматирования.

5 голосов
/ 26 января 2009
string.Join(sep, new string[] {myNewBO[0].LastName, myNewBO[0].FirstName});
1 голос
/ 26 января 2009

Я подозреваю, что в вашем коде происходит что-то еще, и вы ошибаетесь, где происходит ошибка. Я не могу понять, почему эти двое ведут себя по-разному. Я предлагаю вам записать значение после назначения для обоих случаев - я уверен, вы обнаружите, что они одинаковы.

1 голос
/ 26 января 2009

В ваших двух звонках действительно нет разницы, я не вижу ошибок. Какое исключение вы получаете. Ответ Джоэла Коухорна по поводу String.Join идеально подходит для того, что вам нужно.

0 голосов
/ 26 января 2009

Какую ошибку он бросает? Это может многое рассказать вам о том, почему он падает.

Твои звонки кажутся мне верными на первый взгляд. Я бы посоветовал вам убедиться, что LastName и FirstName являются строками, а не NULL. Чтобы быть уверенным, я думаю, вы могли бы добавить .ToString() в конец FirstName и LastName.

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