T в классе? AddRange ICollection?

Большая проблема, не имейте полного ответа, просто подсказка относительно Ваших сценариев для контакта с пробелами в именах файлов.

Вместо

find ... | xargs tar c - | ...

попытка, помещая

find ... | perl -e '@names = <>;' -e 'chomp @names;' -e 'system( "tar", "c", "-", @names);' | ...

тот путь, Ваше создание архива (или подобные операции) не пострадает от пробелов на имена, оболочка argv парсинг пропускается, прежде чем tar называют.

Еще одна вещь, на всякий случай это на самом деле работает: если бы существует CVS к утилите SVN, используйте его (я предполагаю, что такая утилита вытянула бы удаленные файлы из "чердака CVS"), и , если это сохраняет каждый момент вовремя как контрольная точка уровня проекта (так как SVN делает это, в отличие от CVS), используйте SVN для выборки правильного момента вовремя. Партия IFS...

7
задан Dejan.S 3 November 2009 в 14:22
поделиться

2 ответа

Нет, ICollection не имеет метода AddRange - и даже если бы он был, вы бы попытались разыменовать null , что вызовет исключение NullReferenceException . Вы не указали коллекцию для добавления списка ... что именно вы пытаетесь сделать?

Вы можете создать (скажем) новый List - и это дает преимущество у вас уже есть конструктор, который может принимать IEnumerable :

public static ICollection<T> Add<T>(this IEnumerable<T> list)
{
    return new List<T>(list);            
}

Однако в этот момент вы действительно только что переопределили Enumerable.ToList () и дали ему другое Тип возврата ...

Если вы хотите добавить все в существующую коллекцию, вам может понадобиться что-то вроде этого:

public static ICollection<T> AddTo<T>(this IEnumerable<T> list,
                                      ICollection<T> collection)
{
    foreach (T item in list)
    {
        collection.Add(item);
    }
    return collection;
}
16
ответ дан 6 December 2019 в 08:44
поделиться

Если я правильно понял, вы хотите добавить IEnumerable в пустую коллекцию.

Не было бы проще просто сделать:

ICollection<MyObject> collection = new List<MyObject>(GetIEnumerableOfMyObject());

Или даже:

ICollection<MyObject> collection = GetIEnumerableOfMyObject().ToList();
4
ответ дан 6 December 2019 в 08:44
поделиться
Другие вопросы по тегам:

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