如何使用特定条件过滤相同的列表。我知道使用两个列表。我想用同样的清单来做..
如果我有一个名为lstValues的列表,其名称和计数,我想过滤 所有计数为0的项目。 所以我创建了另一个列表
lstFilterdedValues.addRange(lstValues.Where(i => i.Count > 0)));
这可行..但我不想使用另一个名为lstFilteredValues的新列表。
我想要像
这样的东西lstValues =lstValues.Where(i => i.Count > 0)).Select(k=>(k));
但这不起作用。
答案 0 :(得分:1)
使用ToList()
来电:
lstValues = lstValues.Where(i => i.Count > 0).ToList();
它会创建新列表并将其分配回您的lstValues
变量。
如果您不想创建新列表并重新分配变量,可以使用List<T>.RemoveAll
方法:
lstValues.RemoveAll(i => i.Count <= 0);
正如您所看到的,您必须撤消条件,因为它指定了哪些项目将被删除,而不是哪些项目应保留在列表中。