有没有更好的方法使用c#从列表中删除元素?

crm*_*ain 3 c# list

我有一个对象列表。如果任何一个属性相等,null我希望将整个元素从列表中删除。有没有比我下面有的更好的方法了。

我已经尝试了每个循环,但要么不知道该怎么做,要么不完全了解如何完成任务。

var i = 0;

while (i < filterCriterias.Count())
{
    if (filterCriterias[i].ColumnName == null 
        || filterCriterias[i].Comparator == null 
        || filterCriterias[i].Criteria == null)
    {
        filterCriterias.RemoveAt(i);
    }
    else
    {
        i++;
    }
}
Run Code Online (Sandbox Code Playgroud)

因此,如果我有以下列表:

List<Order> orders = new List<Order> 
{
    new Order {ColumnName = null, OperantOrder = null},
    new Order {ColumnName = Session, OperantOrder = ASC},
    new Order {ColumnName = null, OperantOrder = null},
}
Run Code Online (Sandbox Code Playgroud)

我只希望列表仅包含元素1,其中columnName = session和operantorder = asc。

Mur*_*nik 10

A more idiomatic approach would be to use RemoveAll:

filterCriterias.RemoveAll(c => c.ColumnName == null ||
                               c.Comparator == null ||
                               c.Criteria == null);
Run Code Online (Sandbox Code Playgroud)