Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# c语言中的灵活if条件#_C#_If Statement - Fatal编程技术网

C# c语言中的灵活if条件#

C# c语言中的灵活if条件#,c#,if-statement,C#,If Statement,我有7个复选框和7个变量。(cbxA,cbxB…cbxG和iA,iB…iG)。我想说的是: List<int> iList=new List<int>(); for (int i=0;i<100;i++) { if (cbxA.Checked && cbxB.Checked) { if (i<iA && i<iB) { iList.Add(i); }

我有7个复选框和7个变量。(cbxA,cbxB…cbxG和iA,iB…iG)。我想说的是:

List<int> iList=new List<int>();
for (int i=0;i<100;i++)
{
   if (cbxA.Checked && cbxB.Checked) 
   {
      if (i<iA && i<iB)
      {
          iList.Add(i);
      }  
   }
   //. . . i want to do like that. 
}
List iList=new List();

对于(int i=0;i您可以将两个if语句组合在一起,并检查复选框是否未选中或
i
是否小于变量

if (cbxA.checked || cbxB.checked || ...)
{
    if ((!cbxA.checked || i < iA) && (!cbxB.checked || i < iB)...)
    {
        iList.add(i);
    }
}
if(cbxA.checked | | | cbxB.checked | |……)
{
如果(!cbxA.checked|i
给你:

    Dictionary<int, int> _map = new Dictionary<int, int>()
    {
        /*{ cbxA, iA },*/
        /*{ cbxB, iB }*/
        /*...*/
    };

    public List<int> GetCheckboxFilteredNumbersUpTo100()
    {
        //find lowest border of all checkboxes, and cut tail of 100 by it.
        var min = _map.Where(x => x.Key.Checked).Select(x => x.Value).DefaultIfEmpty(100).Min();
        return Enumerable.Range(0, Math.Min(min,100)).ToList();
    }
Dictionary\u map=newdictionary()
{
/*{cbxA,iA}*/
/*{cbxB,iB}*/
/*...*/
};
公共列表GetCheckBoxFilteredNumber supto100()
{
//找到所有复选框的最低边框,并用它切下100的尾部。
var min=_map.Where(x=>x.Key.Checked).Select(x=>x.Value).DefaultIfEmpty(100.min();
返回可枚举的.Range(0,Math.Min(Min,100)).ToList();
}

只需在地图上填写您的复选框及其对应的最小索引。

我认为您需要澄清问题-我不知道您在问什么。选中,添加…在发布/呈现现有代码时尽量准确。您有
N
复选框,代表
N
条件,您只想检查那些不符合条件的条件s复选框被选中。当
i
满足所有活动条件时,将其添加到列表中。我是否正确理解了问题?grek40是的,您是对的。
如果(!cbxA.checked | |)(cbxA.checked&&iYou不需要字典(顺便说一句,它是
字典
类型),简单的
列表
就可以了(虽然使用
Item1
Item2
是可以的,但我同意,自定义类型
Item
List
可能会解决这个问题)。而且你真的需要解释逻辑(它非常模糊,你现在几乎不需要任何混淆器)嗯,是的。我同意,但是如果你有复杂的逻辑,你最好把它恰当地命名。因为事实上OP所问的是非常简单的。我会编辑我的答案。谢谢你的回答eocron,但我不理解你的解决方案。也许我可以通过dlinq解决这个问题,但我不想使用dlinq。如果一个if语句就足够了,那么就退出字典e浪费。更难在上面阅读。好吧,这几乎是“圣战”声明。我们在stackoverflow上,所以你可以自由给出你自己的答案,而不是否决你不喜欢的正确答案。WereGoingOcean感谢你的回答,但这不是一个解决方案。我刚刚编辑了我的帖子。请查看。
  if (i<iD && i<iE && i<iG)
  {
      iList.Add(i);
  }
if (cbxA.checked || cbxB.checked || ...)
{
    if ((!cbxA.checked || i < iA) && (!cbxB.checked || i < iB)...)
    {
        iList.add(i);
    }
}
    Dictionary<int, int> _map = new Dictionary<int, int>()
    {
        /*{ cbxA, iA },*/
        /*{ cbxB, iB }*/
        /*...*/
    };

    public List<int> GetCheckboxFilteredNumbersUpTo100()
    {
        //find lowest border of all checkboxes, and cut tail of 100 by it.
        var min = _map.Where(x => x.Key.Checked).Select(x => x.Value).DefaultIfEmpty(100).Min();
        return Enumerable.Range(0, Math.Min(min,100)).ToList();
    }