LINQ - type arguments cannot be inferred from the usage in a select

c#, linq

Solution

You need

return result;

at the end of your expression.

Problem

I have the following where objectiveData is: `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(); } ``` I am getting an error on the line with the "select" saying: ``` 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. ``` Here's my Objective class: ``` 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; } } ```

Original source