返回List<>类型的属性

时间:2009-11-24 21:57:11

标签: c# list properties

我正在尝试将匹配返回到包含在列表中的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'

任何人都可以解释如何解决这个问题吗?

谢谢!

2 个答案:

答案 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)使用它。现在,正如您的错误所说,比较字符串和列表。