Как правильно удалить диапазон элементов зная начало и конец диапазона в списке?
Есть такой код: Необходимо удалить диапазон элементов по индексу, скажем с 5-го по 8-й включительно.
class DataRow
{
public string Time { get; set; }
public Int32 Temperature { get; set; }
public DataRow(string time , Int32 temperature)
{
Time = time;
Temperature = temperature;
}
public override string ToString() {
return $"{Time} {Temperature}";
}
}
List<DataRow> listData = new List<DataRow>();
listData.Add(new DataRow("10:00:00", 0));
listData.Add(new DataRow("10:00:01", 1));
listData.Add(new DataRow("10:00:02", 2));
listData.Add(new DataRow("10:00:03", 3));
listData.Add(new DataRow("10:00:04", 4));
listData.Add(new DataRow("10:00:05", 5));
listData.Add(new DataRow("10:00:06", 6));
listData.Add(new DataRow("10:00:07", 7));
listData.Add(new DataRow("10:00:08", 8));
listData.Add(new DataRow("10:00:09", 9));
listData.Add(new DataRow("10:00:10", 10));
listData.Add(new DataRow("10:00:11", 11));
Ответы (2 шт):
Автор решения: Alexander Petrov
→ Ссылка
Серьёзно? Задача на вычитание двух чисел вызвала затруднения?
var list = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 };
Console.WriteLine(string.Join(", ", list));
// Диапазон: 8..11
int start = 8;
int end = 11;
int count = end - start;
list.RemoveRange(start, count);
Console.WriteLine(string.Join(", ", list));
Автор решения: tym32167
→ Ссылка
Просто ещё один способ, может кому пригодится
var list = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 };
int start = 5, end = 8;
var result = list.Where((i, ind) => ind < start || ind > end).ToList();
Console.WriteLine(String.Join(',', result));
Вывод
1,2,3,4,5,10,11,12