【c# – 如何将项目添加到通用集合?】教程文章相关的互联网学习教程文章

C#多线程编程:使用并发集合

原文链接:https://www.cnblogs.com/wyt007/p/9486752.html 编程需要对基本的数据结构和算法有所了解。程序员为并发情况选择最合适的数据结构,那就需要知道很多事情,例如算法运行时间、空间复杂度,以及大写0标记法等。在不同的广为人知的场景中,我们总知道哪种数据结构更高效。 对于并行计算,我们需要使用适当的数据结构。这些数据结构具备可伸缩性,尽可能地避免锁,同时还能提供线程安全的访问。.NET framework版本4引入了System.C...

C#从数组集合中删除“部分”重复项【代码】

我试图找到问题的答案,但我被困了.我有数组的集合,需要删除一些属性相同的记录. 例:我有属性 – BeginTime,EndTime,Date,Price.07:00, 11:00, 2011-11-14, 90 08:00, 12:00, 2011-11-14, 110 07:00, 11:00, 2011-11-15, 120 07:00, 11:00, 2011-11-14, 50我想删除BeginTime,EndTime和Date相同且Price不是最低的记录.在此示例中,删除的记录将是第一个. 感谢您的任何帮助或建议解决方法:如何使用LINQ:IEnumerable<Bar> bars = ......

c# – NHibernate错误 – “无法初始化集合”【代码】

我有多对一的映射工作正常,但位置和location_times之间的一对多关系一直给我一个错误. 我一直收到这个错误: 在这行代码上: 映射看起来像这样: 地点:public virtual IList<LocationTimes> LocationTimes { get; set; }public virtual int locationID { get; set; }public virtual IList<LocationTimes> LocationTimes { get; set; }public Location(){LocationTimes = new List<LocationTimes>();}位置图:public class Locatio...

c# – 维护插入顺序并允许按索引访问元素的集合【代码】

我基本上需要一个像Set一样工作的数据结构,但这不仅维护了插入顺序,让我以后通过get(index)方法获取它们. 什么是最适合实现此目的的数据结构?如果需要,我不会有必须实施一个问题.在更糟糕的情况下,我可以同时使用ArrayList和HashSet,但我想知道是否有专门的数据结构到任务. 性能是至关重要的(否则我可以在常规列表上进行O(n)搜索!)我并不担心空间复杂性.解决方法:像这样的东西?编辑:正如Jiddo所说,这种结构不能有效地删除元素....

c# – 如何使用不同类型的单个元素创建类型安全的数组或集合?

我正在C#中实现一个方法,它接受一个类型为object的参数,例如SomeMethod(对象参数).我需要将不同类型的多个对象的集合传递给此方法.由于接口限制,我无法更改方法签名. 我在考虑发送一个对象数组,object [] myArray = new object [2],但是如果可能的话我想强烈地键入数组的每个元素.例如,我有两个对象,一个是Foo类型,另一个是Bar.我想保证myArray [0]是Foo而myArray [1]是Bar. 我该怎么做?另一个集合类型或创建特殊类会更有意义吗?...

c# – 修改了集合,其中未修改项目【代码】

我正在使用XNA库为C#开发一个简单的游戏.在下面的代码片段中,我得到了Collection was modified; enumeration operation may not execute. 第二个foreach循环顶部的错误.在我(相对有限的)C#体验中,这在尝试在循环期间修改底层集合时会发生.但是,据我所知,我没有以任何方式修改enemy_positions集合.此代码中的所有集合都是List< Vector2>类型. 这里发生了什么?//defines collision behaviour when enemy is hit int be_no = 0; List...

c# – MVVM – 具有多态性的集合【代码】

我试图在ListBox中公开两个派生类型:OutFlight和InFlight都派生自Flight,它是一个抽象类型. MVVM说我必须为ListBox的绑定模型设置ViewModel.对于一种类型的曝光来说,这不是什么大问题,但我的列表框包含两种派生类型,我正在寻找最好的MVVM方法.这是否意味着我必须为每个派生类型设置继承的ViewModel?我已经读过某处ViewModel继承不被推荐……我确信这是一个非常常见的情况解决方法:您可以创建一个封装OutFlight和InFlight实体的通...

c# – 更改集合中的struct【代码】

我在里希特的书中读过有关拳击的内容,有一点我不明白.我已成功更改了对象中的struct.但是当我尝试在集合中更改struct时,我遇到了问题.//my struct internal struct Point:IChangeBoxedPoint {public Int32 x, y;public void Change(Int32 x, Int32 y){this.x = x;this.y = y;}public override string ToString(){return String.Format("{0}, {1}", this.x, this.y);} }public static void Main() {List<Point> a = new List<Point>...

c# – 按百分比从ASP.NET集合中选择项目【代码】

我有一个包含100个项目的集合.Collection<int> myCollection = new Collection<int>();for(int i; i <= 100; i++) {myCollection .Add(i); }如何从该系列中按百分比(例如30%)随机选择项目?解决方法:试试这个:var rand = new Random(); var top30percent = myCollection.OrderBy(x=> rand.Next(myCollection.Count)).Take((int)(0.3f*myCollection.Count)).ToList();如果需要某些延迟查询,可以删除ToList().

c# – 当我将线程添加到集合时,TPL中的Handeling错误【代码】

我正在制作一个Producer Consumer模型,其中生成的每个项目都在新的Task Parallel Library线程上使用,并在List< Task>中进行跟踪.采集.我希望能够以及时和可预测的方式捕获任何未公开的异常.在一个循环中,我从集合中删除已完成的线程,并且正在考虑类似下面的内容,但没有在网上看到任何关于此的内容.try {Task.WaitAll(threadList.FindAll(x => x.IsFaulted).ToArray()); } catch(AggregateException aex) {//Deal with the exceptio...

c# – 如何规范化float集合,使所有元素的总和为X.【代码】

如果这个问题措辞不当或解决方案很简单,请原谅我.我似乎找不到现有的答案,用我熟悉的术语进行搜索. 我有一系列非负浮标,我想将它们标准化 – 我能做的很多.我的问题是,我希望集合中所有元素的总和是特定的数量. 我可以设想一些丑陋的方法来实现这一目标,但我只知道有一种“正确”的方法来实现这一目标.目的是创建一个复合条形图,其总宽度必须固定.集合中的每个数据点都被赋予一个颜色,该颜色应该达到总条形图宽度的N%.我通过图形显...

c# – 极端线程安全集合【代码】

我在.Net 4.5中有一个ConcurrentBag,我从数据库中存储了大约4,000行.我正在存储DTO. 我的整个应用依赖于此.我有返回整个列表的函数,还有返回单个项目的函数.我的代码中有很多地方我正在对集合进行LINQ查询等. 我将它全部投入生产,在现场获得可观的流量,并立即100%cpu.我使用了iis诊断工具,果然,死锁中有50个线程,等待ConcurrentBag. 文档说这个集合是线程安全的,但要么不是这样,要么这个集合的性能不好,从而间接地使它不是线程安全...

C#:使用lambda对GroupBy的每个集合元素【代码】

我有一个Component的集合,这些集合有一个Pax的集合:public class Component {public IEnumerable<Pax> Paxes { get; set; } }public class Pax {public int Number { get; set; } public int Room { get; set; } }我想通过乘客列表对我的Component集合(这是一个IEnumerable< Component>)进行分组.var groups = components.GroupBy(c => c.Paxes);当然,不期望这些团体.在组件中重复的Paxes没有相同的对象引用,所以我必须在组表达...

c# – 为什么List,Dictionary和其他集合包含一个名为“version”的字段?【代码】

我正在查看C#的源代码参考,在一些集合中我发现:int _version = 0;每次收集更改时,版本都会增加. 这个领域的重点是什么? Dictionary List Stack解决方法:查看源here,它似乎用于检查状态是否已更改并导致内部枚举器在枚举时抛出InvalidOperationException.这也适用于List< T> .ForEach(..)方法. 这是有道理的,因为在枚举时修改集合是不合法的.更准确地说,一旦修改后继续迭代一个集合是不合法的,但我发现前一个规则使我无法进入后者...

c# – 将对象集合导出到XML文件【代码】

使用C#…我有一个小应用程序,它从一个类创建对象,并将它们添加到一个对象集合中,它会沿途显示一些UI内容,以显示集合中当前所选对象的某些值(使用WPF UI) .所以我想添加让用户将对象集合保存到文件的功能,这样他们就可以在下次运行应用程序时将其加载回来. 我猜测XML是一种显而易见的方法,但我对如何做到这一点一无所知.那么,如何将对象集合导出或转储到xml文件中,然后,或许更重要的是,如何将该XML文件读回我的应用程序以重新创建集...