C# IList<;项目>;比较并检查重复数据

C# IList<;项目>;比较并检查重复数据,c#,winforms,C#,Winforms,在我得到所有的IList之后,我想比较卡号,如果这与返回true相同,则返回false。字符串卡号是我得到的文本 我比较的方式显示了错误 无法将类型“System.Collections.Generic.List”隐式转换为“bool” public bool IsCardCodeDuplicate(long? organizationId, string cardNumber) { IList<CardDto> card = CardData.In

在我得到所有的IList之后,我想比较卡号,如果这与返回true相同,则返回false。字符串卡号是我得到的文本

我比较的方式显示了错误

无法将类型“System.Collections.Generic.List”隐式转换为“bool”

     public bool IsCardCodeDuplicate(long? organizationId, string cardNumber)
    {
        IList<CardDto> card = CardData.Instance.GetCardList(organizationId, null);

        //if (cardNumber != null)
        //{
        //    card = card.Where(p => p.CardNumber == cardNumber.ToString()).ToList();
        //    return true;
        //}

        if (card.Where(p => p.CardNumber == cardNumber.ToString())
            {
                return true;
            }

        return false;
    }
public bool IsCardCodeDuplicate(长?组织ID,字符串卡号)
{
IList card=CardData.Instance.GetCardList(organizationId,null);
//如果(卡号!=null)
//{
//card=card.Where(p=>p.CardNumber==CardNumber.ToString()).ToList();
//返回true;
//}
if(card.Where(p=>p.CardNumber==CardNumber.ToString())
{
返回true;
}
返回false;
}
卡。其中(p=>p.CardNumber==CardNumber.ToString()
返回具有指定卡号的卡的列表。您可以通过

var list = card.Where(p => p.CardNumber == cardNumber.ToString());
if (list.Count() > 0)
{
    return true;
}
或者更好,试试
card.Any(p=>p.CardNumber==CardNumber)
,它返回一个布尔值。
Any
性能更好,因为它只产生第一个匹配元素,而
Where
将产生所有匹配元素。

public bool IsCardCodeDuplicate(long?organizationId,string CardNumber)
public bool IsCardCodeDuplicate(long? organizationId, string cardNumber)
{
    IList<CardDto> card = CardData.Instance.GetCardList(organizationId, null);

    return card.Any(p => p.CardNumber == cardNumber);       
}
{ IList card=CardData.Instance.GetCardList(organizationId,null); 返回卡。任意(p=>p.CardNumber==CardNumber); } 无需将
cardNumber
转换为字符串,因为它已经是字符串