Сделайте свой добавочный класс public
и попробуйте. Если он находится в другом пространстве имен, он не доступен для вашего текущего проекта. По умолчанию при отсутствии модификатора доступа указанным классом являются internal
.
Сделай что-нибудь подобное
namespace MyProjects.Extensions
{
public static class ArrayListExtensions
{
/// <summary>
/// ArrayList => List<T>
/// </summary>
/// <remarks>
/// Based on http://www.dotnetperls.com/convert-arraylist-list
/// </remarks>
public static List<T> ToListCollection<T>(this ArrayList arrayList)
{
List<T> list = new List<T>(arrayList.Count);
foreach (T instance in arrayList)
{
list.Add(instance);
}
return list;
}
}
}
Подробнее о Модификаторы доступа на MSDN .
Примечание : На указанном сайте есть демонстрационная версия, в которой класс расширения определен в том же пространстве имен, что и потребитель.
В качестве альтернативы вы можете использовать arrayList.Cast<T>().ToList()
(из Jon Skeet ' s comment).
Надеюсь, это поможет вам.