有一个集合dy,我想保留传入来的的键,其余都remove掉,
可是按照下面的那种写法就会报出集合发生变化的问题,
有什么办法可以避免呢?
Dictionary<string, string> dy = new Dictionary<string, string>();
dy.Add("a", "A"); dy.Add("b", "B"); dy.Add("c", "C"); dy.Add("d", "D"); dy.Add("e", "E");
//如果key不等于c或者d就remove
foreach (KeyValuePair<string, string> kv in dy)
{
if (kv.Key != "c" || kv.Key != "d")
{
dy.Remove(kv.Key);
}
}
------解决思路----------------------
linq的where直接创建一个新的dic