C#将项目添加到列表中.Any不起作用

时间:2016-05-18 18:26:36

标签: c#

嗨,我一直试图解决这个问题一段时间,但我自己也搞清楚了。

我正在尝试将新的“客户”添加到列表中,但新客户所拥有的ID不能与已添加到列表中的ID相同。

我一直试图用.Any方法做到这一点,但我想我在某个地方犯了错误..

if (AllCustomers.Any(x => x.id != pNewCustomer.id))
{
   // Add customer here
}

5 个答案:

答案 0 :(得分:1)

您需要.All方法。

如果你有:

var list = new int[] {1, 2, 3};
list.Any(x => x != 2); // TRUE because 1 != 2
list.All(x => x != 2); // FALSE

答案 1 :(得分:1)

条件测试AllCustomers列表中是否有任何客户的价值与新客户不同。

你想要的条件是

if (!AllCustomers.Any(x => x.id == pNewCustomer.id))
{
    // Add customer here

}

答案 2 :(得分:0)

if (AllCustomers.Any(x => x.id == pNewCustomer.id))
{
    // already exists. Do not add
}
else
{
    AllCustomers.Add(pNewCustomer);
}

答案 3 :(得分:0)

请勿使用Any,请使用All

if (AllCustomers.All(x => x.id != pNewCustomer.id))
{
       // Add customer here
}

答案 4 :(得分:0)

您需要做的就是:

if (!AllCustomers.Any(x => x.id == pNewCustomer.id))
{
   // Add customer here
}

请注意!=(不等于)已被==(等于)替换,条件本身被反转!在开始。