LinqKit có phương pháp mở rộng ForEach
cho IEnumerable
có xung đột với System.Collections.Generic.IEnumerable
.C# phương pháp mở rộng không rõ ràng
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>)'
Làm cách nào để loại bỏ lỗi này?
Một lưu ý phụ - Eric Lippert có một số điểm tuyệt vời về lý do tại sao phương pháp mở rộng 'ForEach' có thể không phải là ý tưởng tốt nhất ... Nó đáng đọc: http://blogs.msdn.com/b/ericlippert/archive /2009/05/18/foreach-vs-foreach.aspx –
Nhắc mới biết, thư viện nào có 'System.Linq.EnumerableExtensionMethods'? – StriplingWarrior
Lý do của @ReedCopsey Lippert là không có thật và phản ánh cách lập trình hàm được gắn vào C#, kém (ví dụ: 'select' thay vì' map', 'aggregate' thay vì' foldl', không có 'foldr' ở tất cả ...). Ngược lại, Scala có một phương thức 'foreach' mặc dù nó có một câu lệnh' for' lặp lại trên các bộ sưu tập ... trên thực tế, vòng lặp 'for' mở rộng đến các lời gọi đến' foreach' (trong số những thứ khác). Scala cho phép một phong cách mã hóa bắt buộc, nhưng theo nhiều cách khác nhau khuyến khích các lập trình viên di chuyển theo hướng một phong cách chức năng khi họ trở nên giàu kinh nghiệm hơn. –