linq - How to get the expected correct matching search results? -


code:

public list<searchresult> getrecordsbyterm(string term)         {             return                 _datareadservice.getrecords()                                         .where(x => x.firstname.contains(term) || term.contains(x.firstname)                                                     || x.lastname.contains(term) || term.contains(x.lastname)                                                     || x.emailaddress.contains(term) || term.contains(x.emailaddress))                                                     .select(x => new searchresult()                                                     {                                                         detailedname = (x.firstname ?? string.empty) + " " + (x.lastname ?? string.empty) + (x.title != null && x.title != string.empty ? ", " : string.empty) + (x.title ?? string.empty) + " (" + (x.office ?? string.empty) + ")",                                                         email = x.emailaddress                                                     })                                         .orderby(x => x.detailedname)                                         .tolist();         } 

in above code, if passing term "baske", getting 2 search results follows:

1, "bas ge"  2, "basket" 

"bas ge" should not in search results, getting result. how redefine above code, need exact matching words?

well if "bas" first name, term.contains(x.firstname) true. seems odd thing do.


Comments

Popular posts from this blog

javascript - JS causing window size to be bigger than necessary - Dropdown bug -

How to mention the localhost in android -

php - Calling a template part from a post -