在我获得所有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;
}
答案 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
转换为字符串,因为它已经是字符串。