如何访问结构数组中的各个字段
本文关键字:字段 数组 结构 何访问 访问 | 更新日期: 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结构的值。