我必须使用LINQ/Lambda而不是ForEach循环.以下是我的代码
ListcatalogItems = new List (); foreach (TreeViewItem item in this.SelectedItems) { if (item.DataContext is CatalogItem) { catalogItems.Add((CatalogItem)item.DataContext); } }
我想知道如何在LINQ中使用'is'运算符.
我试过了
this.SelectedItems .Where(item => item.DataContext is CatalogItem) .Select(item => item.DataContext)
但没有得到理想的结果.请帮忙.
试试这个:
var catalogItems = this.SelectedItems .OfType<TreeViewItem>()//If the SelectedItems is IEnumerable .Select(item => item.DataContext) .OfType<CatalogItem>() .ToList();