如何访问struct数组中的各个字段

时间:2013-09-02 09:06:59

标签: c# console-application

我正在尝试完成作业,我遇到以下问题(我在过去12小时内已经完成了这项工作)。请帮忙。

我打开了一个文件,将文件保存到struct数组中。可以访问结构的每个元素,但不知道如何访问每个单独的字段。即

STRUCT

//struct to hold the hand values
public struct CurrentHand
{
    public char cardSuit;
    public int cardValue;
}

我需要将cardValue提取到数组或变量中,以便我可以评估每个记录,即手是一对还是两对等。我不知道如何做到这一点。从我发现不可能访问每个领域,这是真的吗?

        //Open file and load data into array
    public static void LoadHandData(CurrentHand[] handData, string fileName)
    {
        string input = ""; //temporary variable to hold one line of data
        string[] cardData; //temporary array to hold data split from input

        //Open the file and read the contents
        StreamReader readHand = new StreamReader(fileName);

        input = readHand.ReadLine(); //one record
        cardData = input.Split(' '); //split record into fields

        for (int counter = 0; counter < handData.Length; counter++)
        {
            handData[counter].cardSuit = Convert.ToChar(cardData[counter *2]);
            handData[counter].cardValue = Convert.ToInt16(cardData[counter *2 +1]);
        }
        readHand.Close();
    }

2 个答案:

答案 0 :(得分:4)

要获得包含您手中持有的牌的值的数组,您可以执行以下操作:

var values = handData.Select(x=>x.cardValue).ToArray();
var seeds = handData.Select(x=>x.cardSuit).ToArray();

顺便说一句,你的结构应该被称为Card或类似的东西,因为Hand应该是一组牌。你给它的名字只是令人困惑,使你的代码不易重复。

答案 1 :(得分:0)

我的问题不明确。无论如何,您可以使用访问单个字段。 试试这个......

CurrentHand.cardValue

使用上面的方法,您可以获取并设置当前和结构的值。