C# 比较IEnumerable字符串与SortedList字符串,字符串

C# 比较IEnumerable字符串与SortedList字符串,字符串,c#,ienumerable,sortedlist,C#,Ienumerable,Sortedlist,我遇到了一个无法解决的问题。:-)我必须找到包含某个子字符串的所有值,然后我必须返回键和值对。我必须实现一个系统,在这个系统中我必须制作一个分类列表,其中相册是一个类,字符串当然是关键 Albums alb = new Albums(); SortedList<string, Albums> list1 = new SortedList<string, Albums>(); 我最后尝试将相册放入LinkedList: LinkedList<string> a

我遇到了一个无法解决的问题。:-)我必须找到包含某个子字符串的所有值,然后我必须返回键和值对。我必须实现一个系统,在这个系统中我必须制作一个分类列表,其中相册是一个类,字符串当然是关键

Albums alb = new Albums();
SortedList<string, Albums> list1 = new SortedList<string, Albums>();
我最后尝试将相册放入LinkedList:

LinkedList<string> albm1 = new LinkedList<string>();  
LinkedList albm1=新建LinkedList();
我确实使用IEnumerable找到了包含子字符串的所有相册:

string albsearch = textBox16.Text;
IEnumerable<string> result = albm1.Where(s => s.Contains(albsearch));
string albsearch=textBox16.Text;
IEnumerable result=albm1.其中(s=>s.Contains(albsearch));
但我不知道如何将结果与SortedList的值进行比较。我还尝试创建一个新的SortedList,其中包含字符串中的相册:

SortedList<string, string> list2 = new SortedList<string, string>();
SortedList list2=新的SortedList();
如有任何建议,将不胜感激。提前谢谢

[测试]
    [Test]
    public void Allbum_Search_Test()
    {
        var searchText = "TestA";
        var list1 = new SortedList<string, Albums>
        {
            {"TestAlbum1", new Albums("TestAlbum1","SomeDate")},
            {"TestAlbum2", new Albums("TestAlbum2","SomeDate")},
            {"OtherAlbum2", new Albums("OtherAlbum","SomeDate")}
        };

        var results = list1.Where(pair => pair.Key.Contains(searchText));

        Assert.That(results.Count(), Is.EqualTo(2));
    }
公共无效所有错误搜索测试() { var searchText=“TestA”; var list1=新分类列表 { {“TestAlbum1”,新专辑(“TestAlbum1”,“SomeDate”)}, {“TestAlbum2”,新专辑(“TestAlbum2”,“SomeDate”)}, {“OtherAlbum2”,新专辑(“OtherAlbum”,“SomeDate”)} }; var results=list1.Where(pair=>pair.Key.Contains(searchText)); Assert.That(results.Count(),Is.EqualTo(2)); }
另一方面,我强烈推荐

  • 将田地私有化
  • 将相册重命名为相册
  • ReleaseDate
    类型更改为
    DateTime
  • Albname
    重命名为
    AlbumName

当您枚举一个
SortedList
时,枚举中的每个项都是一个键/值对

我想你想要的是:

Albums alb = new Albums();
SortedList<string, Albums> list1 = new SortedList<string, Albums>();

var foundItems = list1.Where(item => item.Key.Contains(albsearch));
当然,如果您需要的话,可以搜索
name1
字段而不是唱片集名称


返回的每个项都是一个键/值对。更准确地说,a.

那么您想查找包含特定字符串的所有相册,然后对它们进行排序?关键是什么?谢谢你的回复!该键是一个名称a stringstring name=textBox1.Text;基本上是艺术家或乐队的名字。因为我需要通过专辑找到使用子串的艺术家或乐队非常感谢!它解决了这个问题。:-)再次感谢你!
Albums alb = new Albums();
SortedList<string, Albums> list1 = new SortedList<string, Albums>();

var foundItems = list1.Where(item => item.Key.Contains(albsearch));
var foundItems = list1.Where(item => item.Value.albname.Contains(albsearch));