簡體   English   中英

LINQ表達式以檢查字段是否包含字符串

[英]LINQ expression to check if field contains string

我有這個代碼

private List<Autocomplete> _GetPeople(string query)
{
    List<Autocomplete> people = new List<Autocomplete>();
    var results = (from p in db.People
             where (p.FirstName + " " + p.LastName).Contains(query)
                   orderby p.FirstName, p.LastName
                         select p).Take(10).ToList();
}

我想知道如何用這種格式寫一些等效的東西

 private ApplicationDbContext _dbContext;
    public PeopleController()
    {
        _dbContext = new ApplicationDbContext();
    }

    var result=_dbContext.people.where(p=>   ...... ).contains()...

我該怎么做? 謝謝。

更新,我自己寫了一些代碼,但沒有用。似乎我不能在||中使用where 使用雙重條件

 var result = _dbContext.people;
            if (!string.IsNullOrEmpty(query)) result = result.Where(a => a.Name.Contains(query) || a.LastName.Contains(query));

從您的評論看來,您似乎想要轉換為方法語法。 就個人而言,我發現LINQ語法更易於讀寫。 但是方法語法應如下所示:

var results = db.People
                .Where(p => (p.FirstName + " " + p.LastName).Contains(query))
                .Orderby(p => p.FirstName)
                .ThenBy(p => p.LastName)
                .Take(10)
                .ToList();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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