C# 如何访问结构数组中的单个字段

C# 如何访问结构数组中的单个字段,c#,console-application,C#,Console Application,我正试图完成一项作业,但我在以下方面遇到了问题(我已经为此工作了12个小时)。请帮忙 我打开了一个文件,将文件保存到一个结构数组中。可以访问结构的每个元素,但不知道如何访问每个字段。i、 e 结构 //struct to hold the hand values public struct CurrentHand { public char cardSuit; public int cardValue; } 我需要将cardValue提取到一个数组或变量中,以便我可以计算每个记

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

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

结构

//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();
    }
//打开文件并将数据加载到数组中
公共静态void LoadHandData(CurrentHand[]handData,字符串文件名)
{
string input=”“;//用于保存一行数据的临时变量
string[]cardData;//用于保存从输入拆分的数据的临时数组
//打开文件并读取内容
StreamReader readHand=新的StreamReader(文件名);
input=readHand.ReadLine();//一条记录
cardData=input.Split(“”);//将记录拆分为字段
用于(int计数器=0;计数器
要获取包含手中卡值的数组,您可以执行以下操作:

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

顺便说一句,你的结构应该叫做卡片或者类似的东西,因为一只手应该是一组卡片。您给它起的名字令人困惑,使您的代码不易阅读。

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

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

顺便说一句,你的结构应该叫做卡片或者类似的东西,因为一只手应该是一组卡片。您给它起的名字很混乱,使您的代码不易阅读。

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

CurrentHand.cardValue

使用上述方法,您可以获取并设置CurrentHand结构的值。

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

CurrentHand.cardValue

使用以上内容,您可以获取并设置CurrentHand结构的值。

感谢您的回复。该结构包含5张卡片,每张卡片都有一套和一个值。这必须是另一个结构,因为您发布的那张卡片只有2个属性,而且看起来确实像一个卡片结构。添加了打开文件和保存数据的方法。我已经更新了解决方案中的代码。值将是一个包含cardvalues的int数组,种子将是一个包含卡片种子的char数组。我一直认为这个结构应该叫做卡片。谢谢你的回复。该结构包含5张卡片,每张卡片都有一套和一个值。这必须是另一个结构,因为您发布的那张卡片只有2个属性,而且看起来确实像一个卡片结构。添加了打开文件和保存数据的方法。我已经更新了解决方案中的代码。值将是一个包含cardvalues的int数组,种子将是一个包含卡片种子的char数组。我一直认为这个结构应该叫做Card。。。。您是否希望您的方法实际返回一个CurrentHand数组,其中包含从文件中读取的数据?这段代码让事情更难理解…谢谢Tim。StreamReader是文本告诉我要使用的工具。(filename)是我从中读取的文件的名称,该文件是从另一个方法传递的,并且文件仅包含第行。。。。您是否希望您的方法实际返回一个CurrentHand数组,其中包含从文件中读取的数据?这段代码让事情更难理解…谢谢Tim。StreamReader是文本告诉我要使用的工具。(filename)是我从中读取的文件的名称,该文件是从另一个方法传递的,并且该文件仅在第行中包含。