访问嵌套字典中的单个元素

本文关键字:单个 元素 嵌套 字典 访问 | 更新日期: 2023-09-27 17:53:05

我有一个iOS应用程序,我使用一个嵌套字典提供数据表视图。字典的结构是:

Dictionary<string1, Dictionary<string2, string3>> dict;
(I have named the strings here for clarification purposes)

我目前在访问这个嵌套字典中的单个元素时遇到麻烦。我想让string1作为章节标题,string2作为单元格文本标签,string3作为单元格详细信息文本标签。下面是我目前对表数据源的处理方法:

public class SupervisionDetailSource:UITableViewSource
{
    Dictionary<string, Dictionary<string, string>> dict;
    string Identifier = "cell";
    public SupervisionDetailSource(Dictionary<string, Dictionary<string, string>> dict)
    {
        this.dict = dict;
    }
    public override string TitleForHeader(UITableView tableView, nint section)
    {
        return dict.Keys.ElementAt((int)section);
    }
    public override UITableViewCell GetCell(UITableView tableView, NSIndexPath indexPath)
    {
        UITableViewCell cell = tableView.DequeueReusableCell(Identifier);
        if (cell == null)
            cell = new UITableViewCell(UITableViewCellStyle.Subtitle, Identifier);
        //this is not right
        cell.TextLabel.Text = dict[supvList.Keys.ElementAt(indexPath.Section)][dict[dict.Keys.ElementAt(indexPath.Row)]]; //string2
        cell.DetailTextLabel.Text = string3 ...?
        return cell;
    }
    public override nint RowsInSection(UITableView tableview, nint section)
    {
        string key = dict.Keys.ElementAt((int)section);
        return dict[key].Count;
    }
    public override nint NumberOfSections(UITableView tableView)
    {
        return dict.Keys.Count;
    }
}

感谢您的帮助

访问嵌套字典中的单个元素

我有困难访问嵌套的元素,但我最终得到它的工作。我只是对如何处理这个问题有一个误解(更不用说嵌套得越多,问题就会变得越复杂)。

我的解决方案:

cell.TextLabel.Text = dict[dict.Keys.ElementAt(indexPath.Section)].Keys.ElementAt(indexPath.Row); //string2
cell.DetailTextLabel.Text = dict[dict.Keys.ElementAt(indexPath.Section)][dict[dict.Keys.ElementAt(indexPath.Section)].Keys.ElementAt(indexPath.Row)]; //string3