【发布时间】:2017-10-24 14:51:12
【问题描述】:
我有一个类对象的列表,我需要使用以这些字母“GHB”开头的元素过滤该列表,然后为其设置一个 listview 控件 dataconext 以显示元素
if(myList.ToList().FindIndex(x=> x.Name !=null)!=-1 )
{
listview1.DataContext = myList.ToList().where(x=> x.Name.StarstWith("GHB"))
}
但是当元素为空时它会给我一个错误
【问题讨论】:
-
a) 由于大小写问题,代码无法编译。 b) 当您有错误时,请告诉我们。它是什么?它发生在哪里?
-
myList.ToList().FindIndex(x=> x.Name !=null)!=-1可以更易读地表示为myList.Any(x => x.Name != null)。 -
您是否考虑过在调用方法之前检查
x.Name是否为空? -
@EdPlunkett 我正在尝试使用 if 条件来做到这一点
-
@DainaHodges 您的 if 条件检查 myList 中是否有任何具有非空名称的项目。因此,如果您有十个项目,其中一个具有非空名称,您继续检查所有名称,包括空名称。我建议在你调用特定项目的
Name上的方法之前,检查你要调用该方法的Name属性是否是空。