Вот измененный ответ Jon Skeet для разрешения больше, чем "один уровень":
static IEnumerable Flatten(IEnumerable enumerable)
{
foreach (object element in enumerable)
{
IEnumerable candidate = element as IEnumerable;
if (candidate != null)
{
foreach (object nested in Flatten(candidate))
{
yield return nested;
}
}
else
{
yield return element;
}
}
}
правовая оговорка: Я не знаю C#.
то же в Python:
#!/usr/bin/env python
def flatten(iterable):
for item in iterable:
if hasattr(item, '__iter__'):
for nested in flatten(item):
yield nested
else:
yield item
if __name__ == '__main__':
for item in flatten([1,[2, 3, [[4], 5]], 6, [[[7]]], [8]]):
print(item, end=" ")
Это печатает:
1 2 3 4 5 6 7 8
Да, вы можете использовать его просто в своем URL-пути следующим образом:
http://example.com/Alice&Bob
Только если вы хотите использовать его в запросе, вам необходимо закодировать его с помощью % 26
:
http://example.com/?arg=Alice%26Bob
В противном случае он будет интерпретирован как разделитель аргументов при интерпретации как application / x-www-form-urlencoded .
Подробнее см. RFC 3986 .
URL-адрес обычно имеет форму
scheme://host/some/path/to/file?query1=value&query2=value
Поэтому не рекомендуется использовать его в URL-адресе, если вы не хотите использовать его для параметров. В противном случае вы должны использовать% 26, например,
http://www.example.com/hello%26world
. В результате путь будет отправлен как hello & world. Есть и другие символы, которые необходимо экранировать при использовании вне контекста в URL. См. Список здесь .
закодируйте '&' с помощью & amp;
(этот ответ основан на использовании вами тегов)
Если вы спрашиваете, что использовать "&" или "и "при регистрации имени вашего URL-адреса я бы использовал" и ".
РЕДАКТИРОВАТЬ: Как упоминалось в комментариях" & является сущностью символа HTML, а не сущностью символа URI. Помещая это в URI, у вас все еще есть амперсанд персонаж и дополнительные посторонние символы ". Я начал отвечать, прежде чем полностью понял ваш вопрос.
Если вы не добавляете переменные в строку запроса, закодируйте ее.