如何在Action委托

时间:2018-04-30 07:48:44

标签: c# linq lambda

这可能很简单,但我无法弄清楚如何在单个语句中设置多个属性。

LCCorsOptions.cs

public class LCCorsOptions
{
    public int AppId { get; set; }
    public string Version { get; set; } = "1.0";
}

这是我到目前为止所得到的:

app.UseLCCors(o => o.Version = "1.0");

我尝试了多种方法,但没有运气

3 个答案:

答案 0 :(得分:4)

这是关于lambda语法,右边的部分是一个普通的方法体,当它是1个表达式或1个语句时可以缩短。否则,请使用完整{ };

app.UseLCCors(o => {o.Version = "1.0"; o.AppId = 2; });

答案 1 :(得分:3)

我假设你正在使用类似这样的扩展方法:

  public static void UseLCCors(this List<LCCorsOptions> list, Action<LCCorsOptions> action)
    {
        foreach (var item in list)
        {
            action(item);
        }
    }

如果是这样的话,试着在lambda符号之后放一些括号:

app.UseLCCors(x => { x.Version = "1"; x.AppId = 1; });

这是你一直在寻找的吗?

答案 2 :(得分:1)

您可能希望在应用初始化时提供LCCorsOptions。你不能做这样的事情:

app.UseLCCors(new LCCorsOptions{Version = "1.0", AppId = 2});