簡體   English   中英

C#,Foreach項目

[英]C#, Foreach Item In

我有一個列表框,其中包含一些項目。 這些項目是網格,包含各種文本塊,按鈕等。

foreach (Grid thisGrid in myListBox.SelectedItems)
                        {
                                foreach (TextBlock thisTextblock in thisGrid.Children)
                                {
                                     //Do Somthing
                                }
                        }

然而,這引發了一個例外,因為除了Textblock之外還有其他項目。 我怎么能適應這個? 謝謝。

當我讀它,這里的問題是循環,並有正在東西Children不在TextBlock秒。

如果LINQ可用:

foreach (TextBlock thisTextblock in thisGrid.Children.OfType<TextBlock>()) {
    // ... do something here
}

除此以外:

foreach (object child in thisGrid.Children) {
    TextBlock thisTextblock = child as TextBlock;
    if(thisTextblock  == null) continue;
    // ... do something here
}

你可以試試

foreach (TextBlock thisTextblock in thisGrid.Children.Where(c => c is TextBlock))
{ /* ... */ }

為你的內循環。

編輯 :TIL,這也可以寫成:

foreach (TextBlock in thisTextblock in thisGrid.Children.OfType<TextBlock>());

如果LINQ可用,請嘗試:

thisGrid.Children.OfType<TextBlock>().ToList().ForEach(tb =>
{
...your code here
});
foreach (var thisTextblock in thisGrid.Children)
                            {
                                 if(thisTextblock is Textblock)
                                     //Do Somthing
                            }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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