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