如何从数组中搜索值

时间:2014-11-23 03:44:08

标签: c#

我正在使用控制台应用程序进行二十一点游戏,我开始制作我的卡类,但我不确定如何使用我的值集访问器来使用数组搜索值,然后确定值参数是否有效。

任何帮助将不胜感激

这是我需要使用的表格

String[] values = {"A","2","3","4","5","6","7","8","9","10","J","Q","K"};

到目前为止,这是我的卡片类

class Card
{

    public enum SUIT { HEARTS, SPADES, DIAMONDS, CLUBS };

    private SUIT _suit;
    private Int32 _value;

    public Card(SUIT suit, Int32 value)
    {

        Suit = _suit;
        Value = _value;
    }

    public SUIT Suit
    {
        get
        {
            //Return member variable value
            return _suit;
        }
        set
        {

        }
    }
    //Public FirstName accessor: Pascal casing
    public Int32 Value 
    {
        get
        {
            //Return member variable value
            return _value;
        }
        set
        {

        }
    }
}

3 个答案:

答案 0 :(得分:1)

如果我理解这个问题,可以试试:

int index = Array.IndexOf(values, Convert.ToInt32(_value));
if(index > 0)
    _value = value;

答案 1 :(得分:1)

如果我理解了您的问题,那么您正在尝试验证设置到您的卡的值是否在您的阵列中。因为只有13个选项,而且它们永远不会改变,只需像使用SUIT那样制作枚举

public enum CardValue {
One, Two ..... Queen, King
}

public Card(SUIT suit, CardValue value)
{
    Suit = _suit;
    Value = _value;
}

答案 2 :(得分:0)

尝试将_value变量更改为字符串。此外,您必须在value语句中使用关键字set

public SUIT Suit
{
    get
    {
        //Return member variable value
        return _suit;
    }
    set
    {
        _suit = value;
    }
}
//Public FirstName accessor
public string Value 
{
    get
    {
        //Return member variable value
        return _value;
    }
    set
    {
         _value = value;
    }
}

如果要发送索引,请将属性名称更改为Index。听起来更轻松!然后使用

_value = value;

作为Int32。如果您想要取回卡,请使用:

 = values[Index];