簡體   English   中英

如何將以下foreach循環轉換為linq格式?

[英]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
    }));

鑒於itemsObservableCollection<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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM