Why does the IEnumerable.Select() works in 1 of 2 cases ? Can not be inferred from usage

后端 未结 5 780
无人及你
无人及你 2021-01-18 03:26

I get this error message:

The type arguments for method \'System.Linq.Enumerable.Select(System.Collections.Generic.IE         


        
相关标签:
5条回答
  • 2021-01-18 03:40

    The Error seems The Return statement missing when you select an Items from the collection.

    Example:

    collection = nonLabors.Select(item =>
                    {
                        item.Travel_Miles = item.Travel_Miles_Original != null ? decimal.Parse(item.Travel_Miles_Original) : 0;
                        return item;
                    }).ToList();
    
    0 讨论(0)
  • 2021-01-18 03:43

    Select is not a replacement for a foreach. Use this instead:

    ObservableCollection<Document> documentsOC = new ObservableCollection<Document>();
    IEnumerable<Document> documents = _docRepo.GetDocumentsByPupilId(_selectedPupil.Id);
    foreach(var doc in documents)
    {
        documentsOC.Add(doc);
    }
    SelectedPupil.Documents.DocumentList = documentsOC;
    
    0 讨论(0)
  • 2021-01-18 03:51

    What is the return type of ObservableCollection<Document>.Add? Typically an Add method returns void. You can't use LINQ Select to execute a procedure for all elements, only a function that returns something (else where would the return value of Select come from?). Instead you can use LINQ ForEach or the C# foreach loop.

    0 讨论(0)
  • 2021-01-18 03:54

    I suspect that Add returns void - is that right? If so there is no way of projecting that to a Func<,> - only to an Action<T> - and Select wants the Func<,>.

    Select is not the same as an indirect `foreach

    0 讨论(0)
  • 2021-01-18 04:04

    documentsOC.Add returns void.
    It doesn't make any sense (and is impossible) to write .Select<Something, void>(...).

    What you're trying to do cannot work in the first place; Select is lazy and doesn't call your function until you enumerate the results.

    You should use a regular foreach loop.

    0 讨论(0)
提交回复
热议问题