我希望将此数据声明为C#的数组:
(x,y)
文件和数据是字符串,而rect是Rectangle对象
它不一定是数组,但我认为数组将是最好的解决方案。
我需要访问存储在数组中的数据。
例如,当我输入“ file1”时,我应该能够读取所有dataX。.
此外,当我输入“ file1”和“ data1”时,我应该可以访问“ rect1”。
您能解释一下我该怎么做吗?
答案 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];