मैं निम्न त्रुटि जब IEnumerable.SelectMany
के भीतर एक async
लैम्ब्डा उपयोग करने की कोशिश हो रही है:SelectMany के साथ async lambda का उपयोग कैसे करें?
var result = myEnumerable.SelectMany(async (c) => await Functions.GetDataAsync(c.Id));
विधि के लिए प्रकार तर्क 'IEnumerable System.Linq.Enumerable.SelectMany (इस IEnumerable, समारोह>) ' उपयोग से अनुमानित नहीं हो सकता है।
public interface IFunctions { Task<IEnumerable<DataItem>> GetDataAsync(string itemId); } public class Functions : IFunctions { public async Task<IEnumerable<DataItem>> GetDataAsync(string itemId) { // return await httpCall(); } }
मुझे लगता है कि क्योंकि मेरी
GetDataAsync
विधि वास्तव में एकTask<IEnumerable<T>>
रिटर्न: जहांGetDataAsync
के रूप में परिभाषित किया गया है स्पष्ट रूप से
प्रकार तर्क निर्दिष्ट करने का प्रयास। लेकिन Select
काम क्यों करता है, निश्चित रूप से इसे एक ही त्रुटि फेंकनी चाहिए?
var result = myEnumerable.Select(async (c) => await Functions.GetDataAsync(c.Id));
क्या इसके आसपास कोई रास्ता है?
आप 'Functions.GetDataAsync' के लिए घोषणा प्रदान कर सकते हैं? – Grundy
@ ग्रुंडी 'कार्य>', लेकिन मैंने प्रश्न में पूरी घोषणा को जोड़ा है। जहां 'टी'' myEnumerable' –
CodingIntrigue
@HimBromBeere के प्रकार से भिन्न है, संग्रह_ के वापसी _collection का चयन करें, लेकिन मुझे लगता है कि ओपी को सरल संग्रह – Grundy