Есть ли какая-то идиоматическая причина, связанная с производительностью или философией дизайна, почему операции C # LinkedList RemoveFirst () и RemoveLast () не возвращают удаленное значение?
Прямо сейчас, Если я хочу прочитать и удалить первое значение, я считаю, что заклинание будет таким:
LinkedList<string> list = ...;
...
string removed = list.First.Value;
list.RemoveFirst();
В Java это будет:
LinkedList<String> list = ...;
...
String removed = list.removeFirst();
Не поймите меня неправильно; Я не пытаюсь сказать, что Java лучше. LinkedList C # имеет гораздо больше возможностей, просто поскольку Node представляет собой общедоступную конструкцию. Я пытаюсь понять выбор дизайна.