Tag: 集合

我可以在编译时声明Type 的变量而不指定T吗?

如何动态加载“MyContent”类? 我有1个interface ,1个抽象genericsclass和1个类。 检查我的代码: public interface IMyObjectInterface{ } public abstract MyAbstractObject : IMyObjectInterface{ } public class MyObject : MyAbstractObject{ } public interface IMyContentInterface where T : MyAbstractObject { void MyMethod(); } public abstract MyAbstractContent, IMyContentInterface where T : MyAbstractObject { public abstract void MyMethod(); } public public class MyContent : MyAbstractContent { public override void […]

找到具有最大值属性的元素的速度更快

通常,要找到具有最大值属性的元素,我喜欢这样 var itemWithMaxPropValue = collection.OrderByDescending(x => x.Property).First(); 但从性能的角度来看,这是好方法吗? 也许我应该做这样的事情? var maxValOfProperty = collection.Max(x => x.Property); var itemWithMaxPropValue = collection .Where(x => x.Property == maxValueOfProperty).First();

你能在List 中的第0位插入吗?

我需要在集合的开头插入一个对象。 我的collections品是List类型 我怎样才能做到这一点?

在不复制源列表的情况下有效地对IList 进行排序

鉴于下面的测试用例我怎么能: 根据IList列表中匹配Id的索引对IList排序。 不匹配的值将移动到列表的末尾,并按其原始索引进行排序。 在这种情况下,由于索引列表中不存在3和4,我们希望看到list[3] == 3和list[4] == 4 。 虽然我知道这可以通过linq实现,但我需要求助于原始列表而不是创建一个新列表(由于列表的存储方式)。 源列表必须是IList (我不能使用List ) 这是测试: public class TestObject { public int Id { get; set; } } [Test] public void Can_reorder_using_index_list() { IList list = new List { new TestObject { Id = 1 }, new TestObject { Id = 2 }, new TestObject { Id […]

将通用字典转换为不同的类型

有没有一种快速的方法将通用字典从一种类型转换为另一种类型 我有这个 IDictionary _commands; 并且需要将它传递给一个带有稍微不同的类型字典的函数 public void Handle(IDictionary _commands);

重新排序任意整数数组

我有一个方法接受一个整数数组作为参数,我只是改变其值的顺序任意 public static int[] _game_number = new int[4]; public static int[] _current_number = new int[4]; public static void GetRandomTwentyFour() { HashSet nums = new HashSet(); for (int i = 0; i < 4; i++) { Random r = new Random(); nums.Add(r.Next(0, 4)); } List liste = nums.ToList(); _current_number = new int[] { _game_number[liste[0]], _game_number[liste[1]], _game_number[liste[2]], […]

如何创建不重复的ConcurrentQueue?

我需要一个不允许重复的concurent集合(在BlockingCollection中用作Producer / Consumer)。 我不需要严格的元素顺序。 从另一方面,我想最小化元素“活”在集合中的最大时间。 即收集不能是LIFO,理想情况下它应该是FIFO。 好吧,我会说我需要ConcurrentQueue而不允许重复,但是没有重复的ConcurrentBag也可以工作。 为什么C#不包含这样的东西,可能有人已经创建了它? 这个问题是我之前的问题的结果, 什么类型的IProducerConsumerCollection 用于我的任务?

协调两个对象集合

我有一个表单,用户可以使用DataGrid修改对象集合。 打开表单时,我创建了原始集合的深层副本,如果按下“取消”按钮,则只丢弃该副本。 问题是,当按下确定按钮时,我必须协调可能的更改: 修改现有对象的属性 添加到集合中任何位置的新对象。 已删除现有对象。 现有对象重新排序。 因为我需要保留原始引用,所以我不能只清除集合并添加修改后的项目。 你知道一个简单的算法会同步两个这样的集合吗? 我正在使用C#3.5,因此可以使用LINQ。

c#集合inheritance

c#中是否有一个集合支持inheritance,就像对象可以看到包含来自另一个元素以及它们自身的所有元素一样? 例如: HashSet animals = new HashSet(); HashSet dogs = new HashSet(); animals.also_appears_to_include(dogs); 因此,如果我为狗添加2个元素,向动物添加1个元素,那么看看动物有多少元素我会看到3。 或者我可以在每个元素中引用上面提到的3个元素,给动物3个元素和狗2.我仍然有两个独立的,重叠的列表是可取的,但是在这个简单的例子中添加和删除元素可能会变得棘手在添加和删除狗的情况下必须添加或删除两个集合。 或者我可以使用此function实现我自己的集合。

什么是学习仿制药的好资源?

任何人都可以帮助我从哪里开始,有关集合(非generics)和generics的基本知识是什么?