请帮我写一个正确的代码。 我试图在互联网上搜索一些字母,但它对我没有帮助。
我有一个大字典,其中包含Dictionary<string, Dictionary<string, string>>
类型的数据(名称:“StructureDictionary”)。
“高级别”有不同的词典键:
[General], [Order], ..., [Group1], [Group5], [Group34], [StaticText3], [Group2], [DynamicPicture2], [StaticText2].
我需要将组的索引列表取消排序(1, 5, 34, 2...)
,并按字母顺序按(string)StructureDictionary["[Group*]"]["Group_Name"]
的值排序。
“Group_Name”是具有字符串类型值的“低级”键,不包含任何“高级”键。此外,某些“组”键没有“Group_Name”字段,或者“Group_Name”键的值为空或与其他组相似。这些组应包含在最终列表的末尾。
我已经制作了一个未排序的索引列表,但我无法编写正确的代码来制作排序列表。我们可以对现有列表进行排序或重新制作新列表。排序条件的选择包括CheckBox条件。
List<string> Groups = StructureDictionary
.Where(x => x.Key.Contains("Group"))
.Select(x => x.Key.Trim(new char[] { '[', ']', ' ' })
.Remove(0, 5))
.ToList();
if (SurveySortCheckBox3.Checked == true)
{
var res =
from d in Groups
orderby StructureDictionary[string.Format("[Group{0}]", d)]["Groups_Name"]
select d;
Groups = res;
}
请帮我修正(或编写新的)“if-true”分支中的代码,以制作排序列表(例如:Groups.Sort()
方法),正如我之前所述。为了正确理解,我添加了一张结构示例的图片。谢谢你的关注。