我有一个这样的字典:
Dictionary<string,List<string>> StudentsByTeacherName = new Dictionary<string,List<string>>();
这个字典在一个循环中我希望字典值在每个循环中更新特定键。如果没有新的键添加到词典
foreach (var item5 in StudentsByTeacherName)
{
if (StudentsByTeacherName.ContainsKey(item5.Key))
{
}
else
{
StudentsByTeacherName.Add(item4.Value,StudentName);
}
}
答案 0 :(得分:2)
我希望每个字段的特定键的字典值都会更新 环。如果没有新的键添加到词典
为此而不是检查ContainsKey
,只需执行:
TeacherName[item3.Key] = yourStringList;
如果密钥不存在,索引器[]
将更新现有密钥并插入。
答案 1 :(得分:1)
您无法更改属性或索引器值,因为这是只读的。你可以做的是通过索引访问它:
foreach (var item5 in StudentsByTeacherName)
{
if (StudentsByTeacherName.ContainsKey(item5.Key))
{
//This will add new values on your list of string on specific
//keys and will not delete the existing ones:
List<string> list = StudentsByTeacherName[item5.Key];
list.Add("Your additional value here");
}
else
{
StudentsByTeacherName.Add(item4.Value,StudentName);
}
}
这将更新字符串列表的值,而不是密钥本身。
答案 2 :(得分:0)
试试这个。
foreach (var item5 in StudentsByTeacherName)
{
if(item5.Value == null)
{
item5.Value = new List<String();
}
item5.Value[item4.Key] = item4.Value;
}
我假设item4是学生。这将替换现有值或添加新值。