[英]How to convert the following foreach loop to linq format?
碼:
foreach (var item in items)
testItems.Add(new TestItem { Header = item.TestItemTypeName, Content = item });
testItems
的類型為ObservableCollection<TabItem>
如何將上述foreach循環轉換為linq格式? 謝謝。
怎么樣
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
}));
假設testItems具有AddRange
函數,即從List
繼承:
testItems.AddRange(items.Select(item => new TestItem{ Header = item.TestItemTypeName, Content = item }));
如您所述,這是一個ObservableCollection
,因此該方法不可用。 在這種情況下,您提供的方法是最簡單的方法。 但是,如果您需要更頻繁地使用此功能,請考慮檢查以下鏈接:
ObservableCollection不支持AddRange方法,因此除了INotifyCollectionChanging之外,我還會收到添加項的通知。
也許:
var testItems = items
.Select(item =>
new TestItem {
Header = item.TestItemTypeName,
Content = item
})
.ToList();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.