LINQ - Typ-Argumente nicht entnommen werden kann den Einsatz in einer select
Habe ich die folgenden, wo objectiveData ist: IEnumerable<Objective>
public IList<Objective> createObjectives()
{
var objectiveData = GetContent.GetType5();
var objectives = objectiveData.Select(o => {
var result = new Objective {
Name = o.Name,
Text = o.Text
};
if (o.Name != null && o.Name.EndsWith("01"))
{
result.ObjectiveDetails.Add
(
new ObjectiveDetail
{
Text = o.Text
}
);
}
});
return objectives.ToList();
}
Ich erhalte eine Fehlermeldung auf die Zeile mit der "select" - nämlich:
The type arguments for method 'System.Linq.Enumerable.Select<TSource,TResult>
(System.Collections.Generic.IEnumerable<TSource>, System.Func<TSource,int,TResult>)'
cannot be inferred from the usage. Try specifying the type arguments explicitly.
Hier ist mein Ziel-Klasse:
public partial class Objective : AuditableTable
{
public Objective()
{
this.ObjectiveDetails = new List<ObjectiveDetail>();
}
public int ObjectiveId { get; set; }
public string Name { get; set; }
public string Text { get; set; }
public virtual ICollection<ObjectiveDetail> ObjectiveDetails { get; set; }
}
- Was bedeutet
GetContent.GetType5()
zurück? - Lies die Frage von oben...
- OK, das problem ist, dass Ihr wählen Sie nicht, etwas zurückzugeben.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie
am Ende Ihres Ausdrucks.
Zunächst, LINQ und die Nebenwirkungen sind... naja, schlecht. Durch lazy loading, und viele andere Fragen. Jedoch, was Sie brauchen, ist zum hinzufügen einer
return result;
Zeile am Ende des Codes etwa so:Jedoch für dieses Verhalten in regelmäßiger Art und Weise, ich würde es so machen: