我的for循环中的if元素怎么了?

时间:2019-05-25 12:58:02

标签: c#

我正在尝试借助数组,for循环和foreach循环创建列表。
用户应该能够输入10个整数,完成后,将向用户显示一个带有该整数的摘要列表。
到目前为止,我们还不错,但是循环还应该能够告诉用户是否有两个彼此相等的整数。
问题来了。

我正在尝试在if condtion中创建一个for loop。我还尝试将其放在foreach loop中(我使用foreach loop来汇总列表),但它并不能按我的意愿工作。

{
    int[] vektor = new int[10]; 

    Console.WriteLine("fill in the 10 positions : "); 
    for (int i=0; i<vektor.Length; i++) 
    {
        Console.WriteLine("Write in a number : ");
        vektor[i] = int.Parse(Console.ReadLine());

        if (vektor == vektor)
            Console.WriteLine("There is an equal number in the list");
    }
    Console.WriteLine("These are your numbers!"); 

    foreach (var num in vektor)
    {
        Console.WriteLine(num);
    }

    Console.ReadKey();
}

问题是:

{
    if (vektor == vektor)
        Console.WriteLine("There is an equal number in the list");
}

部分代码。我要的是将用户放入列表中的新号码与列表中已经准备好的号码进行比较。

谢谢。

1 个答案:

答案 0 :(得分:0)

改为使用一个集合,例如:

var set = new HashSet<int>();  //a set cannot have duplicate elements

for (var i = 0; i < vektor.Length; i++)
{
    var number = int.Parse(Console.ReadLine());

    if (!set.Add(number))
    {
        //value already exists on the set
    }
}