Почему не C # LinkedList. RemoveFirst () возвращает удаленное значение?

Есть ли какая-то идиоматическая причина, связанная с производительностью или философией дизайна, почему операции 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 представляет собой общедоступную конструкцию. Я пытаюсь понять выбор дизайна.

11
задан Dilum Ranatunga 12 May 2011 в 18:25
поделиться