问题描述
我正在尝试简化这本词典的创建:
private Dictionary<Guid,int> emojiSelect = new Dictionary<Guid,int>
{
{ emoji0.Id,0 },{ emoji1.Id,1 },{ emoji2.Id,2 },{ emoji3.Id,3 },{ emoji4.Id,4 },{ emoji5.Id,5 },{ emoji6.Id,6 },{ emoji7.Id,7 },};
使用 FOR 循环是因为元素遵循递增结构,它会减少应用程序的大小,从而节省用户空间。但是因为字典的键是用 XAML 元素的 Guid 填充的,所以我陷入了僵局,我不知道如何使用字符串来引用变量名。
我已经开始了:
for(int counter = 0; counter <= 7; counter++)
{
emojiArray.Add(//???\\,counter);
}
我基本上希望能够将单词“emoji”与当前存储在“counter”变量中的数字连接起来,并将其用作对特定 XAML 元素的引用,正如目前在完全编写的字典中所发生的那样:
EG: "emoji" ++ 1 --> reference to 'emoji1' object
完成此引用后,我将能够在其末尾使用 .Id 来恢复它的 Guid
解决方法
如果 emoji 是 Xaml 中的 Element
,您可以通过循环其 RootLayout 来获取它们。
例如,如果它们在 StackLayout 中,如下所示:
<StackLayout x:Name="RootLayout">
...
<... x:Name="emoji0" .../>
<... x:Name="emoji1".../>
<... x:Name="emoji2".../>
...
</StackLayout>
然后您可以按如下方式获取它们:
foreach (var item in RootLayout.Children)
{
emojiArray.Add(item.Id);
Console.WriteLine("++++++++++++" +item.Id);
}