2015-11-19 43 views
-4

所以我创建列表并添加到它的元素,后来我想读它们。并且它不能正常工作。在我的情况下,如果标题true和checkbox.checked为真,它应该返回true值。但它给我虚假。这里是我的代码:列表检查出错值

foreach (var part in config.Parts) 
{ 
    if (part.Title == "chapter2") 
    {          //true 
     checkBox1.Checked = part.Checked; 
    }          //true   
    if (part.Title == "chapter3") 
    {          
     checkBox2.Checked = part.Checked; 
    } 
    }         //false 

任何想法?

+0

您提供的源代码不足以重现您的问题。 –

+5

你的问题真的不清楚 - 你只是在一个开口大括号上放上一个“随机假”字样。请编辑您的问题以包含[mcve],以便我们可以看到您的意思并重现它。 –

+0

我不明白为什么而不是复制/粘贴人员尝试在这个丰富的编辑器中重新编写代码。您的源代码底部有一个左括号而不是右括号。 –

回答

0

你可以改变它来切换案例,使其看起来更好,更易于管理。

foreach (var part in config.Parts) 
{ 
    switch(part.Title){ 
     case "chapter2" : 
      checkBox1.Checked = part.Checked; 
     break; 
     case "chapter3" : 
      checkBox2.Checked = part.Checked; 
     break; 
     default : 
      throw new Exception("Case not handled"); 
     break; 
    } 
    } 

请记住,您正在循环运行它。您的复选框可能会被覆盖,如果您得到两个part.Title == "some chapter number"

+0

这不是OP问题的答案,仅仅是设计改进(如果有的话)。 – HimBromBeere

+0

但是在我的情况下,如果我想同时使用这两个章节,而不是一个 – Mantas

+0

@Mantas,因为您处于for循环,所以您将检查每个部分的标题。无论哪个匹配,它都会转到下一个。 – Yahya