我有這種類型的列表IEnumerable<MyBaseType>
我試圖創建一個額外的where子句來檢索列表中的特定項目。該特定值只存在於子類型MyFirstType和MySecondType上。不在MyBaseType上。使用子類型限制創建LINQ表達式
是否有可能來樣創造一個表達...
MyList.Where(b => (b is MyFirstType || (b is MySecondType)) && b.SpecificValue == message.SpecificValue);
以上不工作因爲B型MyBaseType和SpecificValue不存在那裏。另請注意,我確實有另一個子類型MyThirdType,它們都沒有SpecificValue。
是什麼工作,做我想這是什麼?
foreach (dynamic u in MyList)
{
if (u is MyFirstType || u is MySecondType)
{
if (u.SpecificValue == message.SpecificValue)
{
//Extracted code goes here
break;
}
}
}
人有一個想法如何創建對於上述方案的LINQ表達?
我其實去動態的第一個版本。謝謝! – Per 2011-05-31 07:07:30