0
사용자 지정 비교자를 작성하여 유사성을 기준으로 검색 결과 목록을 정렬하려고합니다. 입력 된 검색어가 목록에 가장 먼저 표시되고 검색 구문으로 시작하는 구문 다음에 알파 순서로 나타나는 모든 값과 같은 용어를 사용하고 싶습니다.매개 변수에 대한 사용자 지정 Comparer 오류가 발생했습니다.
을 감안할 때이 테스트 코드 :
string searchTerm = "fleas";
List<string> list = new List<string>
{
"cat fleas",
"dog fleas",
"advantage fleas",
"my cat has fleas",
"fleas",
"fleas on my cat"
};
나는이 비교자를 사용하려고 해요 : '내 고양이는 벼룩을 가지고'에
list.Sort를 호출public class MatchComparer : IComparer<string>
{
private readonly string _searchTerm;
public MatchComparer(string searchTerm)
{
_searchTerm = searchTerm;
}
public int Compare(string x, string y)
{
if (x.Equals(_searchTerm) ||
y.Equals(_searchTerm))
return 0;
if (x.StartsWith(_searchTerm) ||
y.StartsWith(_searchTerm))
return 0;
if (x.Contains(_searchTerm))
return 1;
if (y.Contains(_searchTerm))
return 1;
return x.CompareTo(y);
}
(새 MatchComparer (SEARCHTERM) 결과를 목록 상단에
나는 이상한/이상한 일을해야한다고 생각합니다. 여기에 뭔가 잘못되었거나 내가하려는 일에 대해 더 나은 접근법이 있습니까?
고마워요!
그것은 작동하는 것 같습니다. 감사 ! – duckus