如何从Dictionary中删除项目

Rad*_*sky -1 c# .net-framework-version

我有

   Dictionary<string, List<string>> Dic = new Dictionary<string, List<string>>();
Run Code Online (Sandbox Code Playgroud)

如何从Dic中删除前1,2,3个元素.我不知道如何使用"foreach"

foreach (KeyValuePair<string, List<string>> kvPair in Dic)
            {
                Console.WriteLine(kvPair.Key);
                foreach (string str in kvPair.Value)
                {

                }
            }
Run Code Online (Sandbox Code Playgroud)

Hab*_*bib 10

你不能从字典中获取项目1,2,3,你只能在一个键的基础上删除.

字典MSDN

返回项的顺序未定义.

您可以使用Orderby根据键对字典进行排序.但要从字典中删除项目,您将需要密钥.

Dictionary.Remove

编辑:根据您编辑的问题与"foreach"

枚举时不能修改字典.如果您尝试从foreach中的字典中删除项目,则会收到错误:

收集被修改; 枚举操作可能无法执行.

您可以将字典转换为数组,然后从字典中删除项目(如下所示,可能会改进或更改,只是为了一个想法):

        var dicArrray = Dic.ToArray();
        foreach (KeyValuePair<string, List<string>> kvPair in dicArrray)
        {
            if (kvPair.Key.Equals("1"))
                Dic.Remove(kvPair.Key);
        }
Run Code Online (Sandbox Code Playgroud)

但请记住,项目在数组中的顺序是未定义的.你无法确定它