C# 如何基于null筛选列表
我有一个C#格式的项目列表。有些项为空,有些项不为空。 如何筛选列表以仅显示非空值C# 如何基于null筛选列表,c#,.net,C#,.net,我有一个C#格式的项目列表。有些项为空,有些项不为空。 如何筛选列表以仅显示非空值 var countInstances = supervisor.SupervisedPlacements.Select(ps => ps.PlacementShift); 那么,如何从countInstances中仅获取非null的列表呢???只需使用Where删除nulls: var filtered = supervisor.SupervisedPlacements.Where(x => x
var countInstances = supervisor.SupervisedPlacements.Select(ps => ps.PlacementShift);
那么,如何从countInstances中仅获取非null的列表呢???只需使用
Where
删除null
s:
var filtered = supervisor.SupervisedPlacements.Where(x => x != null);
var countInstances = filtered.Count();
编辑:我可能误解了。。这里有另一个选择(如果这是你的意思):
就像其他比较一样
(x => x.Foo != null)
尝试从
countInstances
中删除所有null
countInstances.RemoveAll(x => x == null);
但是这将对
countInstances
产生直接影响。在您的第一个示例中,.ToList()
真的有必要吗?没有。我已经习惯了必须处理IQueryable的习惯:/n如果您正在使用IQueryable,那么不要执行.ToList()
,这将是非常重要的!如果您这样做了,您将不得不通过网络传输整个结果集,以便在服务器可以轻松完成并传输单个int
…的情况下对其进行计数,而我一周来一直在处理这些问题。。结果将被过滤。。因此,它们是不可改变的。这只是我几周工作的一个习惯。。不是经常发生的事。不过什么是福?我得到的结果是countInstances[0]=null,countInstances[1]=object,countInstances[2]=nullFoo可以是需要测试的任何属性,以确定是否将其包含在结果中,或者对象本身为(x=>x!=null)
countInstances.RemoveAll(x => x == null);