的Linq有這個方便的功能Where
,讓我過濾可枚舉的結果...C#/ Linq:其中X是Y?
foreach (var method in typeof(Program).GetMethods())
{
foreach (var attr in method.GetCustomAttributes(inherit: true).Where(a => a is UrlAttribute))
{
Console.WriteLine(((UrlAttribute)attr).Url);
}
}
但它似乎沒有檢索只是某種類型的對象非常方便,因爲我還是要投他們。 Linq沒有辦法解決這個問題,是嗎?
這是一個很好的解決方案嗎?
public static class Extensions
{
public static IEnumerable<T> OfType<T>(this IEnumerable<object> e)
{
return e.Where(x => x is T).Cast<T>();
}
}
我正在學習如何編寫自己的屬性,我試圖找出如何現在檢索它們。
OfType已經是linq的內置擴展,我不知道你爲什麼要實現自己的 – 2010-08-09 01:27:46
@Fadrian:我不會>。<我只是愚蠢的。 – mpen 2010-08-09 01:39:50