使用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