Я не совсем уверен, каков ваш общий вариант использования, но, возможно, было бы полезно сделать метод OrderChildren универсальным, как показано ниже:
public static class ChildOrderHelper
{
public static IEnumerable<T> OrderChildren<T>(IEnumerable<T> children) where T : IHasChildID
{
var childrenList = children.ToList();
//just a simple example of what I'm guessing the method could do...
return childrenList.OrderBy(c => c.GetChildID()).ToList();
}
}
И вызвать его следующим образом:
List<Child> originalList = GetChildren();
List<Child> orderedList = ChildOrderHelper.OrderChildren<Child>(originalList).ToList();
Средства там "расширяются атрибуты". Ввести
ls -l@
видеть, каковы они. С той командой, всем с после того, как это будет иметь некоторые дополнительные строки, объясняющие, почему это имеет. По моему опыту, обычно означает, что файл будет открытым с приложением кроме значения по умолчанию (т.е. это могло бы открыться другим текстовым редактором, чем Вы привыкли к), или иногда что это находится в другом кодировании, чем значение по умолчанию, указанное $LANG.
Из страницы справочника для "ls":
Если файл или каталог расширил атрибуты, поле полномочий, распечатанное-l опцией, сопровождается символ. Иначе, если файл или каталог расширил информацию о безопасности, поле полномочий, распечатанное-l опцией, сопровождается '+' символ.
Я не знаком с расширенными атрибутами, но расширенной информацией о безопасности, иначе ACLs, даю более мелкомодульный контроль над полномочиями файла. В основном это + подходит каждый раз, когда Вы устанавливаете полномочия на файле/каталоге вне обычного выбора, читал/писал/выполнял для user/group/other. Вы видите ACLs путем выполнения 'ls - le'.