Tag: collections

C#阻止Collection被修改exception

是否 foreach(T value in new List(oldList) ) 当oldList包含1百万个对象T时危险(代价高昂)? 更常见的是,在枚举期间添加/删除元素时,枚举oldList的最佳方法是什么?

是否有任何集合类或特殊数据类型支持.NET 3.5中超过2 ^ 31项?

我目前正在使用VS 2008 64位版本,带有SP1的3.5框架。 但是,像List这样的集合类似乎可以包含2 ^ 31(或int的最大值)元素的限制。 有谁知道是否有任何真正的64位集合可以处理容器中超过2 ^ 31个元素? 如果不是VS 2008,那么VS 2010怎么样? 那里有任何第三方collections品吗?

理解C#中的IEnumerable

我试图理解C#中的IEnumerable接口。 正如MSDN中所述 IEnumerable公开了一个枚举器,它支持对非generics集合的简单迭代。 这很简单。 当我们有一个实现这个接口的集合时,我们得到一个实现IEnumerator接口的枚举器,( http://msdn.microsoft.com/en-us/library/system.collections.ienumerable.getenumerator ( v=vs) .110).aspx ),使用这个枚举器,我们可以通过以下方式迭代集合的所有元素: foreach(var item in items) { // code goes here } 在上面的代码片段中, items是一个实现IEnumerable接口的集合。 这是可能的,因为枚举器有一个名为Current的属性,它具有集合的当前元素和枚举器使用的方法MoveNext ,以移动到下一个元素。 最后但并非最不重要的是,它有一个名为Reset的方法,它将枚举数设置为其初始位置,该位置在集合中的第一个元素之前,如MSDN中所述。 我们有以下代码片段: int[] array = new int[10] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; IEnumerable numbers = array; foreach (var number in numbers) { Console.WriteLine(number); } […]

如何在mongoDB中查看任何更改(新行)?

有没有办法在mongoDB观察每个collection (甚至一个)? 现在我考虑定时器来检查文档号或最后一个Id,但也许有可能实现newDocumentAddedEvent这样的newDocumentAddedEvent ?

在SortedDictionary中查找最接近的值

我有一个SortedDictionary SortedDictionary myDict; 现在我想找到X之上的第一个值。我可以做这样的事情 foreach (var iKey in MyDict.Keys) { if (iKey >= thresholdKey) { foundKey = iKey; break; } } 但这并不是明智的表现。 还有更好的建议吗? (在集合中是否有一种方法可以像二进制搜索SortedDictionary那样?)

简化的集合初始化

在初始化WF4活动时,我们可以这样做: Sequence s = new Sequence() { Activities = { new If() …, new WriteLine() …, } } 请注意, Sequence.Activities是Collection但可以在没有新Collection()的情况下初始化它。 如何在Collection属性上模拟此行为?

C#等价的LinkedHashMap

正如问题所说,我正在寻找Java中LinkedHashMap的c#等价物。 我需要能够通过索引检索键和值,获取大小。 我需要按插入方式排序元素。 一个键应该与一个值匹配。 我试过的collections(以及它们的问题): NameValueCollection – 允许一对多链接。 我猜这会导致不必要的开销。 OrderedDictionary – 无法通过索引检索密钥。 编辑 :有人指出C#中不存在这样的等价物。 在链接的问题中,答案指向一个示例实现的论坛,该论坛似乎已关闭。 有人可能会提供一个示例实现吗? 编辑2 :来自System.Net的CookieCollection似乎是我需要的。 这对较大尺寸(元素数量)有何影响?

如何以编程方式将WPF TreeView绑定到List ?

所以我对WPF很新,并尝试将一个Drink值列表绑定或分配给wpf树视图,但不知道如何做到这一点,并发现很难在网上找到任何不使用xaml显示内容的东西。 struct Drink { public string Name { get; private set; } public int Popularity { get; private set; } public Drink ( string name, int popularity ) : this ( ) { this.Name = name; this.Popularity = popularity; } } List coldDrinks = new List ( ){ new Drink ( “Water”, 1 ), new […]

Linq查询过滤列表中的id c#

我有一个结果列表列表,其中包含List里面的内容。我有另一个列表,其中只包含List。我想使用数据中的linq查询进行过滤,它应返回包含第二个技能ID的所有数据名单。 var list = this._viewModel.Data.Select(T => T.SkillsList); var filtered = item.Skills.Contains(list.Where(t=>t.ToString()).ToList(); 从第一个列表中它包含技能列表中的小数列表; item.Skills包含字段为技能和代码的列表。 item是另一个包含技能列表的对象。

CancellationToken取消不会破坏BlockingCollection

我有这样的取消令牌 static CancellationTokenSource TokenSource= new CancellationTokenSource(); 我有一个像这样的阻止集合 BlockingCollection items= new BlockingCollection(); var item = items.Take(TokenSource.Token); if(TokenSource.CancelPending) return; 我打电话的时候 TokenSource.Cancel(); Take不会像它应该的那样继续下去。 如果我使用带轮询的TryTake,令牌显示它被设置为已取消。