C# 一种更优化的迭代JToken属性的方法?

C# 一种更优化的迭代JToken属性的方法?,c#,json,json.net,C#,Json,Json.net,我正在迭代JToken属性,如果键值等于某个字符串,那么它将执行特定的操作 foreach (JToken type in typeList) { if (type["type"].Value<string>() == "Car") {

我正在迭代JToken属性,如果键值等于某个字符串,那么它将执行特定的操作

foreach (JToken type in typeList)
                            {

                                if (type["type"].Value<string>() == "Car")
                                {
                                    Do Something...
                                }
                                else if (type["type"].Value<string>() == "Truck")
                                {
                                    Do Something...
                                } ....
foreach(类型列表中的JToken类型)
{
如果(类型[“类型”].Value()=“汽车”)
{
做点什么。。。
}
else if(类型[“类型”].Value()=“卡车”)
{
做点什么。。。
} ....

有没有更好的方法将其写成一个有相当多不同对象类型的语句。

可能是一个switch语句……因为在这种情况下,switch语句会更有效,因为它会在点击“find”时停止值,而不是通过所有的
ifs
比较,除非您返回它们,否则我怀疑您是否能使任何事情更有效率-不明显地确定

switch(type["type"].Value<string>())
{
    case "Car":
       Do Something...
       break; // (or ) reaturn xxx (or ) go to xxx.

}
开关(类型[“类型”].Value())
{
案例“汽车”:
做点什么。。。
中断;//(或)重新返回xxx(或)转到xxx。
}

可能是一个switch语句……因为在这种情况下,switch语句会更有效,因为它在碰到“found”值时会停止,而不是进行所有的
ifs
比较,除非您返回它们,否则我怀疑您是否能使任何事情更有效率-不明显

switch(type["type"].Value<string>())
{
    case "Car":
       Do Something...
       break; // (or ) reaturn xxx (or ) go to xxx.

}
开关(类型[“类型”].Value())
{
案例“汽车”:
做点什么。。。
中断;//(或)重新返回xxx(或)转到xxx。
}

是的,我正要把它变成一个案例,但我想我应该检查一下是否有人能提供一个更有效的流程:P@Mask-dCodex在这种情况下,switch语句会更有效,因为它会在点击“find”时停止是的,我同意,我已经做了一个更改。我希望创建一个全新的方法来执行此操作,或者可能是1-2行:)@Mask dCodex您可以创建一个“Car”和“Truck”类型的字典作为字典中的一个值,它是一个委托的引用。但是这可能是一个过火的行为,完全没有必要-绝对没有提高效率:)是的,我正要把它变成一个案例,但我想我应该检查一下是否有人能提供一个更有效的流程:P@Mask-dCodex在本例中,switch语句更适合有效,因为它会在命中“find”值时停止,而不是遍历所有的
ifs
。是的,我同意,我已经做了一个更改。我希望创建一个全新的方法来执行此操作,或者可能是1-2行:)@Mask dCodex您可以创建一个“Car”和“Truck”类型的字典作为字典中的一个值,引用delegate。但这可能是一种过分的做法,完全没有必要——肯定不会提高效率:)