代码之家  ›  专栏  ›  技术社区  ›  Kimi

设置IDictionary的所有值

  •  2
  • Kimi  · 技术社区  · 14 年前

    Dictionary<int, bool> 结构类型(将所有值设置为 true false ). 目前我正在使用 ToDictionary() 扩展方法。有没有办法通过重用当前实例来做到这一点?

    [TestFixture]
    public class Sample
    {
        [Test]
        public void SampleTest()
        {
            var dictionary = new Dictionary<int, bool>{{1, false}, {2, true}, {3, false}};
            foreach (var key in dictionary.Keys)
            {
                dictionary[key] = true;
            }
    
            Assert.That(dictionary[3], Is.True);
        }
    }
    
    2 回复  |  直到 14 年前
        1
  •  11
  •   Anthony Pegram    14 年前
    foreach (int key in dictionary.Keys.ToList())
        dictionary[key] = true;
    
        2
  •  2
  •   Chris Dunaway    14 年前

    另外,您可能希望考虑使用BitArray类(System.Collections.BitArray)。它有一个SetAll方法,可以将所有位设置为true或false:

    BitArray ba = new BitArray(8);  //BitArray with 8 bits
    
    ba[3] = true;  //set some bits
    ba[6] = true;
    
    ba.SetAll(false);  //Clear all