IList <item>比较并检查重复数据</item>

时间:2015-01-19 03:43:36

标签: c# winforms

在我获得所有IList之后,我想比较卡号,如果它与返回true相同,否则返回false.String卡号是我得到的文本

我比较的方式显示错误。

无法将类型'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;
    }

2 个答案:

答案 0 :(得分:2)

card.Where(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将产生所有匹配元素。

答案 1 :(得分:0)

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

    return card.Any(p => p.CardNumber == cardNumber);       
}

无需将cardNumber转换为字符串,因为它已经是字符串。