var list = project.Lists["spisok"];
int num = 18;
for(int i = 0; i < list.Count; i++)
{
if(int.Parse(list[i].Replace("$", "")) >= num) list.RemoveAt(i);
}
В первом сниппете цикл нужно было снизу в верх крутить и потому не все удаляло. В этом сниппете, если в строке не будет числа, такую строку также удаляет.
C#:
var list = project.Lists["spisok"];
int num = 17;
Regex regex = new Regex(@"\d+");
for(int i = list.Count - 1; i >= 0; i--)
{
int number;
bool isNumber = int.TryParse(regex.Match(list[i]).Value, out number);
if(isNumber)
{
if(number >= num)
{
list.RemoveAt(i);
}
}
else list.RemoveAt(i);
}