Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Можно ли упростить код? / 12 сообщений из 12, страница 1 из 1
08.11.2006, 18:49
    #34113657
kika
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли упростить код?
Всем привет!

У меня есть функция, которая возвращает result.
Подскажите можно ли ее упростить?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
string result = String.Empty;
string Name1Value = String.Empty;
string Name2Value = String.Empty;
string curName2 = String.Empty;
string curName1 = String.Empty;

int i =  0 ;

while( rdr.Read() ) 
{
	curName1 = Convert.ToString(rdr[ 0 ]);
	curName2 = Convert.ToString(rdr[ 1 ]);
	if (Name1Value != curName1)
	{
		if(i!= 0 )
		{
			result += ",";
		}
		result += @"\n-ITEM #" + curName1;
		if (curName2 != "")
		{
			result += " ID #" + curName2;
		}
	}
	else
	{
		if (curName2 != "")
		{
			result += " ID #" + curName2;
		}
	}
	Name1Value = curName1;
	Name2Value = curName2;
	i +=  1 ;
}
...
Рейтинг: 0 / 0
08.11.2006, 19:17
    #34113731
iSestrin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли упростить код?
похоже на сишарпную реализацию вот этого faq
...
Рейтинг: 0 / 0
08.11.2006, 23:12
    #34114055
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли упростить код?
Что-то вроде того...
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
string result = String.Empty;
string Name1Value = String.Empty;
string Name2Value = String.Empty;
string curName2 = String.Empty;
string curName1 = String.Empty;

int i =  0 ;

while( rdr.Read() ) 
{
	curName1 = Convert.ToString(rdr[ 0 ]);
	curName2 = Convert.ToString(rdr[ 1 ]);
	if (Name1Value != curName1)
	{
		if(i!= 0 )
		{
			result += ",";
		}
		result += @"\n-ITEM #" + curName1;
	}
	if (curName2 != "")
	{
		result += " ID #" + curName2;
	}
	Name1Value = curName1;
	Name2Value = curName2;
	i +=  1 ;
}

З.Ы. Если нужно поднять производительность строковых операций, то лучше использовать StringBuilder.
...
Рейтинг: 0 / 0
09.11.2006, 00:12
    #34114101
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли упростить код?
Не знаю, на чем это написано, но наверняка можно. Например, так:

Код: plaintext
1.
2.
3.
4.
5.
while( rdr.Read()) {
  if ((curName1 = Convert.ToString(rdr[ 0 ])) != Name1Value)
    result += (result == "") ? "," : "" + @"\n-ITEM #" + curName1;
  if ((сurName2 = Convert.ToString(rdr[ 1 ])) != "")
    result += " ID #" + curName2;
}
...
Рейтинг: 0 / 0
09.11.2006, 00:15
    #34114103
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли упростить код?
Пардон, видимо я уже сплю. Лучше так:

Код: plaintext
1.
2.
3.
4.
5.
while( rdr.Read()) {
  if ((curName1 = Convert.ToString(rdr[ 0 ])) != Name1Value) 
    result += (result != "") ? "," : "" + @"\n-ITEM #" + (Name1Value = curName1);
  if ((сurName2 = Convert.ToString(rdr[ 1 ])) != "")
    result += " ID #" + curName2;
}
...
Рейтинг: 0 / 0
09.11.2006, 09:56
    #34114516
fdsdsfdfsdsfdfs
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли упростить код?
используй String буфер.
...
Рейтинг: 0 / 0
09.11.2006, 14:30
    #34116159
kika
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли упростить код?
А можете расшифровать что значит такая запись:

Код: plaintext
result += (result != "") ? "," : "" + @"\n-ITEM #" + (Name1Value = curName1);

Особенно : и ? символя не понятно что значат!
...
Рейтинг: 0 / 0
09.11.2006, 14:48
    #34116265
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли упростить код?
Если в том языке, на котором Вы это писали, нет операции ?:, то Вам не повезло. Если есть, то ищите в книжке по языку :)
...
Рейтинг: 0 / 0
09.11.2006, 14:51
    #34116289
kika
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли упростить код?
Плз, киньте ссылку где можно почитать про такую форму запись!
...
Рейтинг: 0 / 0
09.11.2006, 14:58
    #34116354
--null--
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли упростить код?
ищите по фразе "тернарный оператор"
...
Рейтинг: 0 / 0
09.11.2006, 15:06
    #34116403
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли упростить код?
Кстати, посмотрев на этот код в бодрствующем состоянии - не уверен, что этот тернарный оператор не стоит взять в скобки. Не уверен, как там с приоритетом операций.
...
Рейтинг: 0 / 0
09.11.2006, 15:10
    #34116429
kika
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли упростить код?
softwarer, спасибо огромное!!! Все понятно и все работает как надо!!!
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Можно ли упростить код? / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]