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