0

これが辞書です、

Dictionary<string, uint> oSomeDictionary = new Dictionary<string, uint>();

oSomeDictionary.Add("Interface1",3);
oSomeDictionary.Add("Interface2",0);
oSomeDictionary.Add("Interface3",0);
oSomeDictionary.Add("Interface4",0);
oSomeDictionary.Add("Interface5",0);
oSomeDictionary.Add("Interface6",0);
oSomeDictionary.Add("Interface7",0);

条件 :oSomeDictionary上記のように、最初のキーの値が 0 より大きく、その後の値が 0 の場合、最初のキーを削除するか、何もしない。

4

2 に答える 2

1

ニーズを解決するための簡単なコードがありますが、コメントに記載されているように、最初に辞書を注文する必要があります。このコードは慎重に使用してください。

Dictionary<string, uint> oSomeDictionary = new Dictionary<string, uint>();
oSomeDictionary.Add("Interface1", 3);
oSomeDictionary.Add("Interface2", 0);
oSomeDictionary.Add("Interface3", 0);
oSomeDictionary.Add("Interface4", 0);
oSomeDictionary.Add("Interface5", 0);
oSomeDictionary.Add("Interface6", 0);
oSomeDictionary.Add("Interface7", 0);

var ordered = oSomeDictionary.OrderBy(_ => _.Key);
if (ordered.First().Value > 0 && ordered.Skip(1).All(_ => _.Value == 0))
{
    oSomeDictionary.Remove(ordered.First().Key);
}
于 2013-04-02T09:10:11.720 に答える