Стандартный Набор для объектов IDisposable

Вы могли добавить его:

public static IEnumerable OrderBy( this IEnumerable input, string queryString) {
    //parse the string into property names
    //Use reflection to get and sort by properties
    //something like

    foreach( string propname in queryString.Split(','))
        input.OrderBy( x => GetPropertyValue( x, propname ) );

    // I used Kjetil Watnedal's reflection example
}

Эти GetPropertyValue функция от ответ Kjetil Watnedal

, проблема была бы то, почему? Любой такой вид выдал бы исключения во времени выполнения, а не время компиляции (как ответ D2VIANT).

, Если Вы имеете дело с Linq к Sql и orderby, дерево выражений, это будет преобразовано в SQL для выполнения так или иначе.

8
задан Eamon Nerbonne 20 July 2009 в 13:52
поделиться

3 ответа

Насколько я знаю, существует только выход из такой коллекции для IComponents - Контейнер реализует IContainer . Я думаю, что для универсального IDisposable у вас нет других вариантов, кроме «изобретать велосипед».

2
ответ дан 5 December 2019 в 23:16
поделиться

Я понимаю, о чем вы спрашиваете, но насколько сложно создать собственный метод удаления, который удаляет элемент, прежде чем вы его удалите?

0
ответ дан 5 December 2019 в 23:16
поделиться

Помните, что ваша коллекция может быть не единственной, содержащей предметы одноразового использования ... Что, если другой объект (внешний по отношению к коллекции) ссылается на один из них? Если вы удалите его при удалении коллекции, что тогда произойдет с объектом?

Если эти объекты реализуют IDisposable для очистки некоторых неуправляемых ресурсов, убедитесь, что они также реализуют финализацию и удаляют неуправляемые ресурсы там.

1
ответ дан 5 December 2019 в 23:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: