私は最近Linq(cue groans)で遊び始め、以下をコンパイルしようとしています。ここで、whereclause部分はDynamicLinqを使用します。これは正常に機能します。コンパイラが実際のクラスを必要とするのはvarプレースホルダー変数です。残念ながら、私は匿名のクラスであると私が信じているものを使用しており、ここからそれを取得する方法がわかりません。助言がありますか?
var query;
if(whereclause != string.Empty)
{
query = Directory.GetFiles(LRSettings.Default.OperatingDirectory, LRSettings.Default.FileExtension,
SearchOption.AllDirectories).AsQueryable()
.Select(Filename => new { Filename, new FileInfo(Filename)
.LastWriteTime, new FileInfo(Filename).Extension, new FileInfo(Filename).Length })
.Where(whereclause);
}
else
{
query = Directory.GetFiles(LRSettings.Default.OperatingDirectory,
LRSettings.Default.FileExtension,
SearchOption.AllDirectories)
.AsQueryable()
.Select(Filename => new { Filename, new FileInfo(Filename).LastWriteTime, new FileInfo(Filename).Extension, new FileInfo(Filename).Length });
}