簡體   English   中英

在具有多個條件的 linq 中獲取匹配的屬性名稱

[英]Get the Matched Property Name in linq where with multiple condition

我想在我的實體上實現全文搜索......我有多個條件,現在我想知道哪個條件已經建立......在最終結果中,我將向用戶顯示搜索值是什么字段。

例如,keyword=Jack 是在 FirstName 還是 LastName 或 FatherName 中?

我的代碼是這樣的:

Users.Where(x => x.FullName.Contains(keywords) || x.LastName.Contains(keywords) || x.FatherName.Contains(keywords)).ToList();

您可以創建自定義類:

public class SearchUser
{
    public string FullName { get; set; }
    public string LastName { get; set; }
    public string FatherName { get; set; }

    public bool searchFullName { get; set; }
    public bool searchLastName { get; set; }
    public bool searchFatherName { get; set; }
}

Users.Where(x => x.FullName.Contains(keywords) ||
        x.LastName.Contains(keywords) ||
        x.FatherName.Contains(keywords))
        .Select(x => new SearchUser()
        {
            FatherName = x.FatherName,
            FullName = x.FullName,
            LastName = x.LastName,

            searchFatherName = x.FatherName.Contains(keywords),
            searchFullName = x.FullName.Contains(keywords),
            searchLastName = x.LastName.Contains(keywords)
        }).ToList();

這樣您就可以知道在哪里找到了關鍵字。

暫無
暫無

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

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