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

本文关键字:字段 数组 结构 何访问 访问 | 更新日期: 2023-09-27 18:30:03

我正试图完成一项作业,但我在以下方面遇到了问题(我已经为此工作了12个小时)。请帮忙。

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

结构

//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();
    }

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

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

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

顺便说一句,你的结构应该叫做Card或类似的东西,因为Hand应该是一组卡片。你给它起的名字只是让人困惑,让你的代码变得不那么易读。

我不清楚您的问题。无论如何,您可以使用访问invidual字段。试试这个。。。

CurrentHand.cardValue

使用上面的内容可以获取和设置CurrentHand结构的值。