C# 空项目源上的Linq ToList

C# 空项目源上的Linq ToList,c#,linq,C#,Linq,在我使用This.ProductList.ItemSource=null;清除数据网格后,此语句将给我null异常: salesItem = (from SalesItem items in this.ProductList.ItemsSource select items).ToList<Sales>(); salesItem=(来自this.ProductList.ItemsSource中的salesItem项目

在我使用
This.ProductList.ItemSource=null;清除数据网格后,此语句将给我null异常:

   salesItem = (from SalesItem items in this.ProductList.ItemsSource
                             select items).ToList<Sales>();
salesItem=(来自this.ProductList.ItemsSource中的salesItem项目
选择项目);
我怎样才能解决这个问题

谢谢。

如果(this.ProductList!=null&&this.ProductList.ItemsSource!=null)
if (this.ProductList != null && this.ProductList.ItemsSource != null)
{
    salesItem = (from SalesItem items in this.ProductList.ItemsSource
                             select items).ToList<Sales>();
}
{ salesItem=(来自this.ProductList.ItemsSource中的salesItem项目 选择项目); }
您可以通过不将ItemsSource设置为null来解决此问题:

this.ProductList.ItemsSource = Enumerable.Empty<Sales>();
this.ProductList.ItemsSource=Enumerable.Empty();

在运行查询之前,检查
this.ProductList.ItemsSource
是否为空或不为空。为什么要在查询为null后运行它?很好地抓住了潜在的null。在LINQ查询中很容易掩饰它们。此注释应该有更多的投票权,这样人们就不会将空集合表示为
null
,这太糟糕了,而且总是出人意料