如何将数字与List not循环列表中的所有数字进行比较?

时间:2016-06-30 07:10:31

标签: c#

我在List中与所有项目进行比较时遇到问题。

因为在下面的代码中。您可以看到i = 1if-else语句失败。因为它是foreach所有值。

第一个值是0.我不想要这种情况。

有任何方法可以将i变量与所有值进行比较吗?

感谢。

List<int> values = new List<int>();
private void CheckCondition()
{
    bool flag = false;
    for (int i = 0; i < 5; i++)
    {
        foreach (int num in values)
        {
            if (i == num || i<num)
                continue;
            else
            {
                values.Add(i);
                flag = true;
                break;
            }
        }
        if (flag)
            break;
        else
            continue;
    }
}

3 个答案:

答案 0 :(得分:1)

此代码将在您的值集合中查找i的每个值

List<int> values = new List<int> {1,2,3,4,5};
for(int i = 0; i< num; i++)
{
    if(values.Contains(i)) 
    {
        //Do the code you want
    }
}

如果您想查看有关列表的其他条件以及i,您可以:

List<int> values = new List<int> {1,2,3,4,5};
for(int i = 0; i< num; i++)
{

    if(values.Any(item => item == i || item > i))
    {
        //Do the code you want
    }
}

答案 1 :(得分:0)

描述你想要的东西。我可以回答你关于检查项目是否在列表中的问题

List<int> values = new List<int> {1, 2, 3, 4};
bool containsItem = values.Contains(2);

答案 2 :(得分:0)

如果该列表中没有i,您是否要将values添加到i? 使用FindIndex检查列表是否包含i它将返回索引。如果不是,则返回-1。

List<int> values = new List<int>();
private void CheckCondition()
{
    for (int i = 0; i < 5; i++)
    {
        int idx = values.FindIndex(item => item == i || item > i);
        if(idx == -1)
        {
           values.Add(i);
           break;
        }
    }
}