我正在学习C#,而我遇到的一个问题就是按字符串搜索列表中的项目。它一直给出错误,我不知道如何解决这个问题。我一直在网上搜索,但找不到合适的解决方案。可能是我误解了答案,我希望能以这种方式得到解决方案。
bl = bn.Vind("JA");
Test(bl.Count == 2, "2 bezettingen voor passagier met tekst 'JA' in zijn naam.");
public List<Bezetting> Vind(string v)
{
for (int i = 0; i < _items.Count; i++)
{
if (_items.Contains(v)) -- Argument1: cannot convert from 'string' to 'ClassLibrary.Bezettingen'
return _items;
}
}
}
希望这可以让我继续前进。
提前致谢!
答案 0 :(得分:2)
您正在查看.Contains(...)
对象上的List<>
。这将尝试将v
的值与包含列表的项目进行比较。如果列表不是字符串,则无效。如果它们是字符串,它将比较整个项目而不是项目。
你想要这样的东西......(第一场比赛)
return _items.FirstOrDefault(i=>i.YourProperty.Contains(v));
......或者......(所有匹配都匹配)
return _items.Where(i=>i.YourProperty.Contains(v)).ToList();
答案 1 :(得分:0)
我真的不明白你在你的方法中做了什么,这非常令人困惑,但是既然你付出了努力,我就会给你一个解决方案。
用于搜索List中的字符串,您可能希望以这种方式:
public List<YourModel> Search(string keyword)
{
//here you should populate your list from database or wherever! for now im just initializing it.
List<YourModel> myList = new List<YourModel>();
//you can have inside validation as well e.g:
if(myList.Any(x=> x.Contains(keyword)))
{
//if you simply want to get First Set of Data
//return myList.FirstOrDefault(x=> x.Contains(keyword));
return myList.Where(x=> x.Contains(keyword)).ToList();
}
else
return myList;
}