如何在lambda表达式中使用带out参数的方法

Chr*_*ann 1 c# linq lambda

我有一个方法,看起来如下:

bool GetIdByName(string name, out ID id)
Run Code Online (Sandbox Code Playgroud)

我想在lambda表达式中使用它,通过许多'名称'获得几个'id':

var ids = names.Select(name => idService.GetIdByName(name, out id));
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我会在我的'ids'变量中找到所有bool值,这不是我想要的.是否也可以将每个调用的out参数"id"输入其中?

Mat*_*zer 5

您可以使用带有body的委托:

IEnumerable<ID> ids = names.Select
(
    name =>
    {
        ID id;
        GetName(name, out id);

        return id;
    }
);
Run Code Online (Sandbox Code Playgroud)