LinqKit ma metodę rozszerzenia ForEach
dla IEnumerable
, która koliduje z System.Collections.Generic.IEnumerable
.Metody niejednoznacznych rozszerzeń C#
Error 4 The call is ambiguous between the following methods or properties:
'LinqKit.Extensions.ForEach<Domain>(System.Collections.Generic.IEnumerable<Domain>, System.Action<Domain>)'
and
'System.Linq.EnumerableExtensionMethods.ForEach<Domain>(System.Collections.Generic.IEnumerable<Domain>, System.Action<Domain>)'
Jak mogę się pozbyć tego błędu?
Na marginesie - Eric Lippert ma kilka świetnych wskazówek na temat, dlaczego metoda rozszerzenia "ForEach" może nie być najlepszym pomysłem ... Warto przeczytać: http://blogs.msdn.com/b/ericlippert/archive /2009/05/18/foreach-vs-foreach.aspx –
Skoro o tym mowa, z jakiej biblioteki pochodził 'System.Linq.EnumerableExtensionMethods'? – StriplingWarrior
@ReedCopsey Rozumowanie Lipperta jest nieprawdziwe i odzwierciedla, jak funkcjonalne programowanie zostało przypisane do C#, słabo (np. 'Select' zamiast' map', 'aggregate' zamiast' foldl', no 'foldr' w ogóle ...). Natomiast Scala ma metodę 'foreach', mimo że posiada instrukcję' for', która iteruje nad kolekcjami ... w rzeczywistości pętla 'for' rozszerza się na wywołania' foreach' (między innymi). Scala pozwala na imperatywny styl kodowania, ale na różne sposoby zachęca programistów do przejścia w stronę stylu funkcjonalnego, gdy stają się bardziej doświadczeni. –