使用LINQ convertAll时,一些转换可能是空

我有以下代码使用LINQ convertAll时,一些转换可能是空

  people = positions.ConvertAll(r=> r.Person).ToList(); 

,但在某些情况下,“人”将是零,在这种情况下我根本就不想将它们添加到已转换的集合(我不想要空项目)

实现此目的的最佳方法是什么?你有条件转换吗?

回答:

people = positions 

.Where(r => r.Person !=null).ToList()

.ConvertAll(r=> r.Person);

回答:

使用Where过滤掉空出现,然后使用Select

people = positions.Where(p => p.Person != null).Select(r => r.Person).ToList(); 

回答:

随着LINQ,你可以这样做:

positions.Where(r => r.Person != null) 

.Select(r => r.Person)

.ToList();

ConvertAll方法不是LINQ的一部分;这是List<T>上的实例方法。 如果你想坚持的是,你可以这样做:

positions.FindAll(r => r.Person != null) 

.ConvertAll(r => r.Person);

请注意,这是微妙的不同,因为过滤投影的结果都是List<T> S,而不是流媒体查询。但最终的结果应该是一样的。

以上是 使用LINQ convertAll时,一些转换可能是空 的全部内容, 来源链接: utcz.com/qa/257140.html

回到顶部