[英]How to declare an array like this
我希望将此数据声明为C#的数组:
file1: data1 [rect1] , data2 [rect2] , data3 [rect3]
file2: data1 [rect1] , data2 [rect2]
file3: data1 [rect1] , data2 [rect2] , data3 [rect3], data4 [rect4]
...
文件和数据是字符串,而rect是Rectangle对象
它不必是数组,但我认为数组将是最佳解决方案。
我需要访问存储在数组中的数据。
例如,当我输入“ file1”时,我应该能够读取所有dataX。
另外,当我输入“ file1”和“ data1”时,我应该能够访问“ rect1”。
您能解释一下我该怎么做吗?
您可以将其定义为
Dictionary<string, List<(string Data, Rectangle Rect)>>
(此语法使用c#7.0元组 )
但是在这种情况下,我觉得更明确的定义将有助于提高可读性。
class RectData
{
public string Data;
public Rectangle Rect;
public RectData(string data, Rectangle rect) { Data = data; Rect = rect; }
}
然后您的数据类型将是
Dictionary<string, List<RectData>>
关键是file
。
使用Dictionary
假定file
密钥是不同的。 如果不是,则可以通过定义以下步骤进一步
class FileData
{
public string File;
public List<RectData> Data;
}
然后使用
List<FileData>
更新资料
初始化看起来像
var myData = new Dictionary<string, List<RectData>>()
{
{ file1, new List<RectData> {
new RectData(data1, rect1),
new RectData(data2, rect2),
}},
{ file2, new List<RectData> {
new RectData(data3, rect3),
new RectData(data4, rect4),
}},
}
我认为您正在寻找的是字典。 请参考此文档以获取更多信息: https : //docs.microsoft.com/zh-cn/dotnet/api/system.collections.generic.dictionary-2?view=netframework-4.7.2
您可以将数据对象声明为:
Dictionary<string, Dictionary<string, Rectangle>> data;
您可以按以下方式访问矩形数据:
var rectangle1 = data[file1][data1];
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.