【问题标题】:How to get next value from List<string>如何从 List<string> 中获取下一个值
【发布时间】:2016-01-17 00:29:03
【问题描述】:

我对列表字符串有疑问。我将 3 个值放入 myCollection

List<string> myCollection = new List<string>();

myCollection.Add(Encoding.Default.GetString(data));
myCollection.Add(Encoding.Default.GetString(data2));
myCollection.Add(Encoding.Default.GetString(data3));

现在我有 3 个值:A、B、C

但现在我想阻止包含此值的按钮:

for (var i = 0; i < myCollection.Count; i++)

{

    if (myCollection.Contains(A))
    {

        this.A.Enabled = false;

    }

    else if (myCollection.Contains(B))
    {

        this.B.Enabled = false;
    }

    else if (myCollection.Contains(C))
    {

        this.C.Enabled = false;
    }
}

在这个循环之后,只有第一个按钮=false。现在循环完成 3 次相同的尝试块按钮 A,我的问题是: 如何屏蔽其他按钮?

现在我进入第一个循环运行:

  this.A.Enabled = false;

2nd this.A.Enabled = false;


3rd this.A.Enabled = false;

但我想要:

1st :   this.A.Enabled = false;

2nd :   this.B.Enabled = false;

3rd :   this.C.Enabled = false;

【问题讨论】:

  • 你为什么要把它放在一个循环中?为什么还要使用列表?
  • A 是按钮还是字符串?
  • 您的意思是说if (myCollection.Contains("A")) 而不是if (myCollection.Contains(A))?如果是这样,请编辑问题。
  • @GrantWinney 是的,你是对的,上周刚刚结束了 JS 狂欢。他对他的问题的更新,虽然覆盖了它

标签: c# list for-loop


【解决方案1】:

你不需要循环。只需使用简单的if 语句而不使用else

if (myCollection.Contains("A"))
    this.A.Enabled = false;

if (myCollection.Contains("B"))
    this.B.Enabled = false;

if (myCollection.Contains("C"))
    this.C.Enabled = false;

主要是else 给您带来了问题。如果 A 的条件为真,则 B 和 C 的代码不会运行。这就是else 的工作原理。

【讨论】:

    【解决方案2】:

    不确定您到底想实现什么,但您的问题是您使用 if..else。如果任何一个条件为真,其余的都不会被解决。

    要解决您的问题,只需从条件中删除 else 关键字。

    此外,当您使用 Contains 时,循环是不必要的。

    如果您坚持使用循环,则必须稍微更改条件,然后才能正确使用 else:

          for (int i = 0; i < myCollection.Count; i++)            
          {
            if (myCollection[i] == A)
            {
                this.A.Enabled = false;                   
            }
    
            else if (myCollection[i] == B)
            {
                this.B.Enabled = false;
            }
    
            else if (myCollection[i] == C)
            {
                this.C.Enabled = false;
            }
          }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-08
      • 2023-01-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多