如何检查URL的字符串值是否在Enum中并将其值分配给变量?

问题描述 投票:0回答:1

我想检查urlPath WEB的一部分是否包含在Enum中,如果是,则在另一个变量中返回其值。

    var urlPath = "SomeThing/Web";

    private enum ClientTypes
        {
            Mob = 0,
            Web = 1
        }

     var client = urlPath.Contains(ClientTypes.Any()) // something like this

如何检查URL中的Web部件是否存在于枚举中,并返回其值并将其分配给client属性?

c# enums
1个回答
0
投票

您可以根据“ /”分割网址,然后与枚举名称进行比较。例如,

var enumNames = Enum.GetNames(typeof(ClientTypes));
var result = urlPath.Split('/').Any(x=> enumNames.Contains(x))

0
投票

urlPath中可能会出现多个枚举值,但是如果您只对第一个匹配感兴趣,可以执行以下操作:

var client = Enum.GetValues(typeof(ClientTypes))
    .Cast<ClientTypes>()
    .SingleOrDefault(e => urlPath.Contains(e.ToString());
© www.soinside.com 2019 - 2024. All rights reserved.