Лямбда-синтаксис для удаления строк из списка - PullRequest
0 голосов
/ 05 февраля 2011

Учитывая:

string removeRows = "";
int i = 0;
foreach (var row in userStats)
{
    if (row.OrderRow.RegistrationType == "Want Removed")
    {
        removeRows = removeRows + i.ToString() + ",";
    }
    i++;
}

что такое синтаксис лямбда для выполнения удаления?

1 Ответ

5 голосов
/ 05 февраля 2011

Как я понимаю, ваш код собирает индексы строк, которые нужно удалить, и формирует строку, разделенную запятыми.На самом деле эти элементы не удаляются, поэтому я не знаю, почему вы это делаете.

Если userStats равно List<T>, где T - ваш тип строки, вы можете использовать RemoveAllметод, который фактически удаляет все элементы, соответствующие данному условию:

userStats.RemoveAll (r => r.OrderRow.RegistrationType == "Want Removed");

Я думаю, что ваш код злоупотребляет строками, вы оба используете их для сбора индексов и для типа регистрации.Интересно, может ли RegistrationType быть перечислением вместо:

enum RegitrationType {
    ShouldBeRemoved,
    // add other types here
}

userStats.RemoveAll (r =>
    r.OrderRow.RegistrationType == RegitrationType.ShouldBeRemoved);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...