我正在尝试将匹配返回到包含在列表中的Foreach语句。 我有一个有字符串列表的类,我将它用作轨道的集合。
我正在尝试检查我传入的给定轨道是否与存储在对象(CD.cs)中的任何轨道匹配,如果是,则返回整个CD的详细信息。
我不确定如何这样做,不幸的是我没有像我应该那样使用列表。
以下是Track Property的一个片段:(虚拟,因为我在另一个班级覆盖它)
public virtual List<string> Track
{
get
{
return _track;
}
set
{
value = _track;
}
}
这是我试图用来返回匹配的方法,很容易看出我想象中哪里出错了。 :
public CD FindTrackInCD(string track)
{
foreach (CD testCD in _cdCollection)
{
**//If given track matches any tracks in the list
if (testCD.Track == track)
{
//Return the matching CD
return trackInCD;
}**
}
throw new ArgumentException("No matches found");
}
我以粗体显示的方法是问题区域,我的编译器向我显示了这个警告:
Operator '==' cannot be applied to operands of type 'System.Collections.Generic.List<string>' and 'string'
任何人都可以解释如何解决这个问题吗?
谢谢!
答案 0 :(得分:2)
您应该执行以下操作:
foreach (CD testCD in _cdCollection)
{
if (testCD.Track.Contains(track))
{
//Return the matching CD
return testCD;
}
}
答案 1 :(得分:1)
将其重命名为Tracks
,然后您将testCD.Tracks.Contains(track)
使用它。现在,正如您的错误所说,比较字符串和列表。