Почему не работает метод RemoveRange для класса List?

Oleg_M

Client
Регистрация
27.02.2015
Сообщения
72
Благодарностей
28
Баллы
18
Здравствуйте!
Есть задача:
В С#. Из списка нужно отобрать определенное количество строк (указывается в настройках), положить отобранные строки через запятую в переменную, а затем удалить эти строки из списка. Получился вот такой код:

Код:
var x = Convert.ToInt32(project.Variables["x"].Value); // количество строк с которыми работаем (указывается во входящих настройках)
var list = project.Lists["Id"]; // список с которым работаем
var a = string.Join(",", list.Take(x).ToArray()); // кладем отобранные строки через запятую в переменную, для дальнейшей работы...
list.RemoveRange(0, x); // очень бы хотелось удалить ранее взятое количество строк, дабы при следующем круге брались уже следующие строки ???????
return a;
Но при попытке выполнить такой код, получаю вот такую ошибку:
Компиляция кода Ошибка в действии "CS1061" ""ZennoLab.InterfacesLibrary.ProjectModel.IZennoList" не содержит определение для "RemoveRange". Не удалось найти метод расширения "RemoveRange", принимающий первый аргумент типа "ZennoLab.InterfacesLibrary.ProjectModel.IZennoList" (пропущена директива using или ссылка на сборку?)". [Строка: 3; Cтолбец: 6]

Хотя этот метод находится в сборке mscorlib, прописанной по умолчанию. (https://msdn.microsoft.com/ru-ru/library/y33yd2b5(v=vs.110).aspx)

P.S. И еще, самое главное !!! Как это все обернуть в цикл, чтоб строки брались пачками согласно значения переменной "х", а в конце, когда будет взята последняя партия и строк не останется, выдалось исключение о том что список пуст.
 
Последнее редактирование:

Nick

Client
Регистрация
22.07.2014
Сообщения
1 983
Благодарностей
817
Баллы
113
Вы пользуетесь объектом класса ZennoLab.InterfacesLibrary.ProjectModel.IZennoList, о чём написано русским по белому в тексте об ошибке. Сам класс планируется внести в сборку mscorlib в 2027 году, когда Zennolab поглотит корпорацию Microsoft, но пока что он содержится в какой-то сборке, поставляемой в составе ZennoPoster.
В этом классе метод RemoveRange не реализован, так что можете в цикле удалить.

Обернуть в цикл — просто:
Код:
while("beta testers pay" =="beta testers pay")
{
.../ваш код

if(0 ==list.Count)
throw new Microsoft.CSharp.RuntimeBinder.RuntimeBinderInternalCompilerException();
}
- например.

Правда, тогда проект внезапно завершит работу и дальше в нём ничего сделать нельзя. Мсье знает толк в извращениях!
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)