[英]How to convert the following foreach loop to linq format?
Code: 码:
foreach (var item in items)
testItems.Add(new TestItem { Header = item.TestItemTypeName, Content = item });
testItems
is of type ObservableCollection<TabItem>
testItems
的类型为ObservableCollection<TabItem>
How to convert the above foreach loop to linq format? 如何将上述foreach循环转换为linq格式? Thanks.
谢谢。
How about 怎么样
items.ForEach(i => testItems.Add(
new TestItem
{
Header = i.TestItemTypeName,
Content = i
}));
Given that items
is ObservableCollection<TabItem>
鉴于
items
是ObservableCollection<TabItem>
you could try 你可以尝试
items.ToList().ForEach(i => testItems.Add(
new TestItem
{
Header = i.TestItemTypeName,
Content = i
}));
Providing that testItems has AddRange
function, ie inherits from List
: 假设testItems具有
AddRange
函数,即从List
继承:
testItems.AddRange(items.Select(item => new TestItem{ Header = item.TestItemTypeName, Content = item }));
As you have mentioned,this is an ObservableCollection
, so the method is not available. 如您所述,这是一个
ObservableCollection
,因此该方法不可用。 In that case, the way you provided is the simplest possible. 在这种情况下,您提供的方法是最简单的方法。 However, if you need to use this functionality more often, consider checking the following link:
但是,如果您需要更频繁地使用此功能,请考虑检查以下链接:
ObservableCollection Doesn't support AddRange method, so I get notified for each item added, besides what about INotifyCollectionChanging? ObservableCollection不支持AddRange方法,因此除了INotifyCollectionChanging之外,我还会收到添加项的通知。
Or perhaps: 也许:
var testItems = items
.Select(item =>
new TestItem {
Header = item.TestItemTypeName,
Content = item
})
.ToList();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.