代码:
foreach (var item in items)
testItems.Add(new TestItem { Header = item.TestItemTypeName, Content = item });
testItems
的类型为ObservableCollection<TabItem>
如何将上述foreach循环转换为linq格式?感谢。
答案 0 :(得分:4)
怎么样
items.ForEach(i => testItems.Add(
new TestItem
{
Header = i.TestItemTypeName,
Content = i
}));
鉴于items
是ObservableCollection<TabItem>
你可以尝试
items.ToList().ForEach(i => testItems.Add(
new TestItem
{
Header = i.TestItemTypeName,
Content = i
}));
答案 1 :(得分:1)
提供testItems具有AddRange
功能,即继承自List
:
testItems.AddRange(items.Select(item => new TestItem{ Header = item.TestItemTypeName, Content = item }));
正如您所提到的,这是一个ObservableCollection
,因此该方法不可用。在这种情况下,您提供的方式是最简单的。但是,如果您需要更频繁地使用此功能,请考虑检查以下链接:
答案 2 :(得分:0)
或者也许:
var testItems = items
.Select(item =>
new TestItem {
Header = item.TestItemTypeName,
Content = item
})
.ToList();