是否有可能利用c#5.0(.Net 4.5)中的dynamic
關鍵字創建動態LINQ查詢?本地動態Linq(C#)
我知道這是可能的使用第三方庫,但現在不可行。
來說明我的點的最簡單的方法是通過一個例子:每個請求
class test
{
public int i { get; set; }
}
void Foo()
{
var collection = new[] { new test() { i = 1 }, new test() { i = 2 } };
Bar(collection);
}
void Bar<T>(IEnumerable<T> collection)
{
//this works
foreach (dynamic item in collection)
if (item.i == 2)
{
//do something
}
//this does not - although this is what id like to use
foreach (dynamic item in collection.Where(a => a.i == 2))
{
//do something
}
}
編輯:產生一個編譯錯誤 -
「T」不包含「i」的一個定義並且沒有找到接受類型'T'的第一個參數的擴展方法'i'可以找到(您是否缺少使用指令或程序集引用?)
請添加特定的運行時/編譯器錯誤。 – Destrictor