如何声明这样的数组

时间:2018-11-28 06:36:15

标签: c# multidimensional-array

我希望将此数据声明为C#的数组:

(x,y)

文件和数据是字符串,而rect是Rectangle对象

它不一定是数组,但我认为数组将是最好的解决方案。

我需要访问存储在数组中的数据。

例如,当我输入“ file1”时,我应该能够读取所有dataX。.

此外,当我输入“ file1”和“ data1”时,我应该可以访问“ rect1”。

您能解释一下我该怎么做吗?

2 个答案:

答案 0 :(得分:5)

您可以将其定义为

public function index(Session $session)
{
    return $this->showPage($session, $session->getValue('page'));
}

(此语法使用c# 7.0 tuples

但是在这种情况下,我觉得更明确的定义将有助于提高可读性。

Dictionary<string, List<(string Data, Rectangle Rect)>>

然后您的数据类型将是

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>

答案 1 :(得分:1)

我认为您正在寻找的是字典。请参阅此文档以获取更多信息:https://docs.microsoft.com/en-us/dotnet/api/system.collections.generic.dictionary-2?view=netframework-4.7.2

您可以将数据对象声明为:

Dictionary<string, Dictionary<string, Rectangle>> data;

您可以通过以下方式访问矩形数据:

var rectangle1 = data[file1][data1];