Я столкнулся с проблемой, которую не могу решить. :-) Мне нужно найти все значения, которые содержат определенную подстроку, тогда я должен вернуть пару ключ-значение. Мне пришлось реализовать систему, в которой я должен был создать SortedList, где альбомы — это класс, строка — это, конечно, ключ.
Albums alb = new Albums();
SortedList<string, Albums> list1 = new SortedList<string, Albums>();
Класс альбомов выглядит так:
public class Albums : IComparable
{
public string albname;
public string name1;
public string releasedate;
public Guid albumID;
public Albums()
{
albumID = new Guid();
}
public override string ToString()
{
return "Album: " + Albname + "\t" + Releasedate;
}
public Albums(string albname, string releasedate)
{
this.albname = albname;
this.releasedate = releasedate;
}
public string Name1
{
get { return name1; }
set { name1 = value; }
}
public string Albname
{
get { return albname; }
set { albname = value; }
}
public string Releasedate
{
get { return releasedate; }
set { releasedate = value; }
}
public int CompareTo(object obj)
{
if (obj is Albums)
{
Albums other = (Albums)obj;
return albname.CompareTo(other.albname);
}
if (obj is string)
{
string other = (string)obj;
return releasedate.CompareTo(releasedate);
}
else
{
return -999;
}
}
}
Что я наконец попробовал, я поместил альбомы в LinkedList:
LinkedList<string> albm1 = new LinkedList<string>();
Мне удалось найти все альбомы, содержащие подстроку, используя IEnumerable:
string albsearch = textBox16.Text;
IEnumerable<string> result = albm1.Where(s => s.Contains(albsearch));
НО я не знаю, как сравнить результат со значениями SortedList. Я также попытался создать новый SortedList, содержащий альбом в строке:
SortedList<string, string> list2 = new SortedList<string, string>();
Любое предложение будет оценено. Заранее спасибо!