需要建立N个分组 比如N个Dic <string,List<>>字典
时间: 2023-11-14 09:04:38 浏览: 70
你可以使用一个 `Dictionary<string, List<T>>` 来存储 N 个分组,其中 `string` 类型是分组的名称,`List<T>` 是该分组下的元素列表,T 是元素的类型。以下是一个示例代码:
```csharp
Dictionary<string, List<int>> groups = new Dictionary<string, List<int>>();
// 添加元素到分组
string groupName = "group1";
int element = 10;
if (!groups.ContainsKey(groupName))
{
groups.Add(groupName, new List<int>());
}
groups[groupName].Add(element);
// 获取分组中的元素
List<int> groupElements;
if (groups.TryGetValue(groupName, out groupElements))
{
foreach (int e in groupElements)
{
Console.WriteLine(e);
}
}
```
这个示例代码展示了如何将 `int` 类型的元素添加到名为 `group1` 的分组中,并且如何从该分组中获取所有元素并打印出来。你可以根据自己的需要修改元素类型和分组名称。
相关问题
c# 建立N个分组 比如N个Dic <string,List<>>字典
可以使用一个循环来创建指定数量的字典,例如:
```
int N = 5; // 指定要创建的字典数量
List<Dictionary<string, List<object>>> dictionaries = new List<Dictionary<string, List<object>>>();
for (int i = 0; i < N; i++)
{
Dictionary<string, List<object>> dict = new Dictionary<string, List<object>>();
dictionaries.Add(dict);
}
```
这样就可以创建一个包含指定数量的字典的列表,每个字典都是一个 `Dictionary<string, List<object>>` 类型的对象。你可以根据需要修改 `N` 的值和字典的键值类型、值类型等。
对于一字典列表List<dictionary<string,string>>,如果字典b的值等于字典a的键,那么称b为a的祖字典,b为a的后字典。字典a的祖字典的祖字典也是a的祖字典。设一字典的键为string,求其所有的祖字典列表。
以下是Python实现,可以求出一个字典的所有祖字典列表:
```python
def find_ancestors(dic_list, target_dic):
ancestors = []
for dic in dic_list:
if target_dic['key'] in dic.values():
ancestors.append(dic)
ancestors.extend(find_ancestors(dic_list, dic))
return ancestors
```
其中,`dic_list`是一个字典列表,`target_dic`是需要查找祖字典的目标字典,`target_dic`中的`'key'`是目标字典的键。函数返回一个字典列表,即目标字典的所有祖字典。
举个例子,假设有以下字典列表:
```python
dic_list = [
{'key': 'a', 'value': '1'},
{'key': 'b', 'value': '2'},
{'key': 'c', 'value': '3'},
{'key': 'd', 'value': '4'},
{'key': 'e', 'value': '5'},
{'key': 'f', 'value': '6'},
{'key': 'g', 'value': 'a'},
{'key': 'h', 'value': 'b'},
{'key': 'i', 'value': 'c'},
{'key': 'j', 'value': 'd'},
{'key': 'k', 'value': 'e'},
{'key': 'l', 'value': 'f'},
{'key': 'm', 'value': 'g'},
{'key': 'n', 'value': 'h'},
{'key': 'o', 'value': 'i'},
{'key': 'p', 'value': 'j'},
{'key': 'q', 'value': 'k'},
{'key': 'r', 'value': 'l'},
{'key': 's', 'value': 'm'},
{'key': 't', 'value': 'n'},
{'key': 'u', 'value': 'o'},
{'key': 'v', 'value': 'p'},
{'key': 'w', 'value': 'q'},
{'key': 'x', 'value': 'r'},
{'key': 'y', 'value': 's'},
{'key': 'z', 'value': 't'}
]
```
如果我们要查找键为`'g'`的字典的所有祖字典,可以这样调用函数:
```python
target_dic = {'key': 'g', 'value': 'a'}
ancestors = find_ancestors(dic_list, target_dic)
print(ancestors)
```
输出结果为:
```
[{'key': 'a', 'value': '1'}, {'key': 'g', 'value': 'a'}]
```
即键为`'g'`的字典的所有祖字典为键为`'a'`和键为`'g'`的字典。
阅读全文