亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

按關鍵字搜索和排序結果

按關鍵字搜索和排序結果

C#
largeQ 2023-08-13 14:10:33
我正在嘗試對 s 集合創建搜索Organisation(我正在使用 LINQ to Entities)。public class Organisation{    public string OrgName { get; set; }    public string ContactName { get; set; }    public string OverviewOfServices { get; set; }    public string Address1 { get; set; }    public string Town { get; set; }    public string PostCode { get; set; }    public string Keywords { get; set; }}用戶輸入一些關鍵字,然后我想返回上面任何字段中存在所有關鍵字的所有Organisations 。Organisation// 1.  Remove special characters and create an array of keywordsstring[] Keywords = CleanKeyWordString(model.keyword)// 2 . Get organisationsorglist = _UoW.OrganisationRepo.All();(OrganisationRepo.All返回一個IQueryableof Organisation。在此之前還有關于搜索的進一步查詢)// 3. Filter results by keywordsorglist = (from org in orglist           where Keywords.All(s =>                org.OrgName.ToLower().Contains(s)             || org.OverviewOfServices.ToLower().Contains(s)             || org.ContactName.Contains(s)             || org.Address1.ToLower().Contains(s)             || org.Town.ToLower().Contains(s)             || org.PostCode.ToLower().Contains(s)             || org.Keywords.ToLower().Contains(s))           orderby searchTerms.Any(s => org.OrgName.ToLower().Contains(s)) ? 1 : 2            select org);這會返回所需的結果,但是,我現在想對它們進行排序,以便首先對標題中包含關鍵字的記錄進行排序,然后對其余的進行排序。如果不向結果添加某種排名算法,這可能嗎?
查看完整描述

1 回答

?
天涯盡頭無女友

TA貢獻1831條經驗 獲得超9個贊

var withRank = orglist

    .Select(o => 

        new { 

            Org = o, 

            Rank = o.OrgName.ToLower().Contains(s) 

        });

var orderedOrgList = withRank

    .OrderBy(o => o.Rank)

    .Select(o => o.Org);


查看完整回答
反對 回復 2023-08-13
  • 1 回答
  • 0 關注
  • 127 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號