[英]Using Linq to replace foreach statement
我對linq的在線解釋有點困惑,所以我想我會做一個話題。
我想用linq語句替換我的foreach語句,因為我確信這樣做會使我的程序更好。
我想在以下方面使用LINQ的示例:
public bool CheckForAccount(int accountID)
{
bool status = false;
foreach (AccountHolders accountHolder in AccountHoldersList)
{
if (accountHolder.AccountNumber == accountID)
{
status = true;
break;
}
}
return status;
}
請您能提供一下它如何工作的解釋,以便我了解您在做什么。
提前致謝!
因此,最簡潔的聲明可能是:
public bool CheckForAccount(int accountId)
{
return this.AccountHolderList.Any(x => x.AccountNumber == accountId);
}
用英語說
檢查
AccountHolderList
任何情況下AccountNumber
屬性等於accountId
。 如果有,則返回true,否則返回false。
都
AccountHolderList.Any(x => x.AccountNumber == accountId);
和
AccountHoldersList.Exists(p => p.AccountNumber == accountId);
同樣出色地工作。 這里是對差異的更深入的解釋: Linq .Any VS .Exists-有什么區別?
您還可以使用以下命令:
var match = AccountHolderList.FirstOrDefault(x => x.AccountNumber == accountId);
return match != null ? true : false;
如果您也想獲得該比賽的參考。 假設accountId是唯一的,則可以正常工作
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.