首页 > 解决方案 > 如果 var 不是 4 个值中的任何一个,我可以做一个 while 循环吗?

问题描述

首先很抱歉这个问题听起来很愚蠢(刚开始编程),而且我的英语不太好。

所以,我想制作一个当 var 不是 4 个字符串值中的任何一个时激活的 while 循环。像这样的东西: while(var != ["str1", "str2", "str3", "str4"]){ 我想知道如何写它,或者用另一种方式来做。谢谢。

标签: c#while-loopvar

解决方案


如果您的字符串是硬编码的,那么执行此操作的“愚蠢”方法是:

while (var != "str1" && var != "str2"...) {

如果字符串是集合的一部分,您可能会使用collection.Contains(var)或类似的东西。

另一种方法是扩展方法

    public static bool In<T>(this T t, params T[] array)
    {
        for (int i = 0; i < array.Length; i++)
        {
            if (t.Equals(array[i]))
            {
                return true;
            }
        }

        return false;
    }

那么你可以这样做var.In("str1", "str2", "str3", "str4")


推荐阅读