如果嵌套列表满足某些要求,是否有一种方便的方法可以将其从另一个列表中移除?例如,假设我们有一个站点集合,我们决定将每个站点集合称为一条路线。每条路线都位于列表中。然后我们决定将每条路线也放入列表中。
现在我们有了一个路由列表,如果有人认为某些类型的路由不应该包含在路由列表中,那么我该如何删除这些路由呢?下面是一些示例代码:
示例类
public class Stops
{
public Stops(int _param1, string _param2)
{
param1 = _param1;
param2 = _param2;
}
public int param1 { get; set; }
public string param2 { get; set; }
}
创建列表
List<List<Stops>> lstRoutes = new List<List<Stops>>();
List<Stops> lstStops = new List<Stops>();
List<Stops> lstMoreStops = new List<Stops>();
// Create some stops
for (int i = 0; i < 5; i++)
{
lstStops.Add(new Stops(i, "some text"));
}
lstRoutes.Add(lstStops);
// Create some more stops
for (int i = 5; i < 10; i++)
{
lstMoreStops.Add(new Stops(i, "some more text"));
}
lstRoutes.Add(lstMoreStops);
如何从lstRoutes中删除param1值大于6的路由?
2条答案
按热度按时间fhity93d1#
最简单的方法(适用于所有的枚举项,而不仅仅是列表)是:
上面的代码段创建了一个新列表,因此会发生复制操作,这意味着性能和内存使用都会受到影响。最有效的方法是一开始就不要将这些项添加到列表中。
第二种最有效的方法是从列表中删除条目,而不是构建一个新条目,这样内存使用就不会受到太大影响:
raogr8fs2#