0
任何人都可以提出如何改進?結果必須包含所有查詢條件的過濾器/搜索查詢條款
public IEnumerable<Person> FindPersons(string queryTerms)
{
if (queryTerms == null)
return new List<Person>();
var queryTermsList = queryTerms.Split(' ').ToList();
var first = queryTermsList.First();
queryTermsList.Remove(first);
var people = FindPerson(first);
foreach (var queryTerm in queryTermsList)
{
people = people.Intersect(FindPerson(queryTerm));
}
return people;
}
它基本上是在queryTermList中搜索包含EVERY queryTerm的人。
因爲結果必須包含所有使用Intersect的術語。
因爲我正在使用相交,所以我必須首先搜索foreach循環之外的第一個查詢詞,這樣循環中的相交點纔會有交叉點。否則,你顯然總是會得到空的結果。
這意味着我需要在進入foreach循環之前從列表中刪除第一個查詢詞。
好的,所以這個工程。看來必須有更優雅的寫作方式。
有什麼建議嗎?
請問這是低效開始的所有條款,或因爲它尚未列舉這將是確定? – user1745482
@ user1745482:可能會慢一點。 – SLaks