簡體   English   中英

使用Linq替換foreach語句

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM