我理解为什么没有内置的方法来执行此操作,但是我想要一个集合对象,它允许在枚举期间更改 。
想象一下:
Dictionary<string, List<string>> test = new Dictionary<string, List<string>> {{"key", null}};
假设我在一个实现IEnumberable
的类中有20个我想使用lambda或简单的foreach
来遍历类,找到匹配键的对象,然后将List<T>
与Value参数一起存储。
答案 0 :(得分:0)
您可以完全避免使用枚举器,例如
var data = myEnumerable.ToArray();
for(var i = 0; i < data.Length; i++) {
// here you can manipulate data[i] to your heart's content
}
答案 1 :(得分:0)
由于您发现无法通过DictionaryEntry
属性更改Value
,因此您必须使用Item
浏览Key
访问者。
一种选择是将您的Where
结果转换为数组,然后循环以获得匹配的Key
:
Dictionary<string, List<string>> test = new Dictionary<string, List<string>>
{{"key", null}};
test.Add("newKey",null);
var matches = test.Where(di => di.Key == "key").ToArray();
foreach(var di in matches) {
test[di.Key] = new List<string> {"one","two"};
答案 2 :(得分:0)
答案 3 :(得分:0)
您可以使用它来修改字典中的值:
public static void ChangeValue(string indexKey,List<string> newValue)
{
if (test.ContainsKey(indexKey))
keysDictionary[indexKey] = newValue;
}