私はC#の機能面で新しいです、質問が不完全であるならば申し訳ありません。
次の間違ったコードがある場合:
var jobSummaries = from job in jobs
where ...
select new
{
ID = job.ID,
Description = job.Description,
FileName = (job) => {
// primitive logic not
// worth to become a named method
try { return job.Files[0].LocalName); }
catch { return null as string; }
}
};
このコードは、次の正当化されたコンパイラエラーを生成します。
ラムダ式を匿名型プロパティに割り当てることはできません
上記のコードは、デリゲートをFileNameプロパティに設定します。しかし、それは私の目的ではありません。コードを次のように機能させたいのですが、メソッドに名前を付けません。
var jobSummaries = from job in jobs
where ...
select new
{
ID = job.ID,
Description = job.Description,
FileName = this.ExtractFileName(job)
};
...
private string ExtractFileName(Job job)
{
try { return Path.GetFileName(job.Files[0].LocalName); }
catch { return null as string; }
}
助言がありますか?