Невозможно вернуть значение из итератора C#C#

Место общения программистов C#
Ответить
Anonymous
 Невозможно вернуть значение из итератора C#

Сообщение Anonymous »

Я пытаюсь вернуть перечисляемое значение с помощью асинхронной функции.
У меня возникла проблема с преобразованием возвращаемого значения типа данных в «основной» метод, поскольку существует асинхронный вызов, сделанный внутри него. Я продолжаю внедрять рекомендованные изменения и то, что читаю в Интернете, но каждый раз, когда я вношу изменения, Visual Studio не нравится что-то еще, что я сделал, и мне приходится возвращаться назад.
Ошибка связана с функцией ListOfLambdas. В частности, он находится на линии «доходность». Номер ошибки: [CS0029][1]
Что вы хотите сделать?
Я хочу получить список/повторяемое значение. который я затем смогу раздать и заняться другой работой.

Код: Выделить всё

public void FunctionHandler()
{

IAsyncEnumerable returnedListOfLambdas = ListOfLambdas();
}

private async IAsyncEnumerable ListOfLambdas()
{
//Instantiating Client:
var lambdaClient = new AmazonLambdaClient();
//Instantiating New Lambda List:
List list = null;
//Getting List
var response = await lambdaClient.ListFunctionsAsync();
response.Functions.ForEach(function =>
{
AWSLambda aWSLambda = MapLambda(function);
if(list == null)
{
list = new List();
}
list.Add(aWSLambda);
});
yield return list; //Here is our error.
}

private static AWSLambda MapLambda(FunctionConfiguration function)
{
AWSLambda lambdaToBeAdded = new AWSLambda();
lambdaToBeAdded.FunctionName = function.FunctionName.ToString();
lambdaToBeAdded.FunctionARN = function.FunctionArn.ToString();
lambdaToBeAdded.FunctionDescription = function.FunctionName.ToString();
lambdaToBeAdded.FunctionRunTime = function.Runtime.ToString();
lambdaToBeAdded.FunctionMemorySize = function.MemorySize.ToString();
lambdaToBeAdded.FunctionTimeout = function.Timeout.ToString();
lambdaToBeAdded.FunctionHandler = function.Handler.ToString();
return lambdaToBeAdded;
}
Я получаю следующую ошибку: «Невозможно неявно преобразовать тип 'System.Collections.Generic.List в 'saveFileS3.AWSLambda'
Но мне это кажется странным, я думаю, вполне очевидно, что переменная list не имеет такого типа данных. Что мне не хватает?
[1]: https://learn.microsoft. .com/en-us/dotnet/csharp/language-reference/compiler-messages/cs0029?f1url=%3FappId%3Droslyn%26k%3Dk(CS0029)

Подробнее здесь: https://stackoverflow.com/questions/787 ... or-c-sharp
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»