2017-06-16 30 views
0

我想在我观察的集合滤除对象..不能过滤观察到的集合,但在访问我的代码C#

var checkedRows = Servers.Where(s => s.NodeName != null).ToList(); //there, you now have a list of checked rows 

当我调试,这回来为空。但是,我有一个测试块运行以下(在相同的功能)

foreach(Server obj in Servers) 
{ 
    Console.WriteLine($"Server: {obj.NodeName}\nChecked:{obj.isChecked.ToString()}"); 
} 

而上述代码打印信息没有任何问题。

这里是服务器声明

public ObservableCollection<Server> Servers { get; set; } 
+1

即使没有任何符合“Where”的地方,也不应该给你null。我觉得还有别的东西你没有显示。 – Crowcoder

+1

Where()和ToList()永远不会返回null。 “这回归为空”是指什么? –

回答

0

节点名可能是null,可能是String.Empty,所以它与IsNullOrEmpty(string)同时检查是一个好主意。

尝试用:

var checkedRows = Servers.Where(s => (!string.IsNullOrEmpty(s.NodeName))); 

检查这个link