Ich bin neu in der funktionalen Seite von C#, sorry, wenn die Frage lahm ist.Zuweisen der Eigenschaft des anonymen Typs über anonyme Methode
Angesichts der folgenden falschen Code:
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; }
}
};
Dieser Code erzeugt folgende gerechtfertigt Compiler-Fehler:
cannot assign lambda expression to anonymous type property
Der obige Code würde die Delegierten auf die Filename-Eigenschaft festgelegt. Aber das ist nicht mein Ziel. Ich möchte den Code so, aber ohne die Methode zu benennen:
Irgendwelche Vorschläge?
Ich habe es gerade versucht. Ich kann Lambda-Ausdruck nicht als eine lokale Variable mit "Let" festlegen. Ich habe den Beispielcode aktualisiert. Ich habe einen Versuch/catch, der direkte computing erschwert. – GarbageGuy
Nein, Sie können einem 'fileName' keinen Lambda-Ausdruck zuweisen. Schreiben Sie einfach den folgenden Code: 'let fileName = Path.Combine (job.Folder, job.File)' oder welche Logik Sie auch brauchen ... –
Warum der anonyme Downvote? –