【C#-从内存中集合(.NET)快速自动完成】教程文章相关的互联网学习教程文章

【c#基础】集合--栈Stack 链表 LinkList 有序列表SortedList

栈:是一个后进先出(LIFO)的容器 栈 push()方法在栈中添加元素,用Pop()方法获取最近添加的元素。 于Queue<T>类相似,Stack<T>类实现IEnumerable<T>和ICollection接口 Count 返回栈中的元素个数 Push 在栈顶添加一个元素 Pop  从站定删除一个元素,并返回该元素,如果栈是空的,就抛出InvalidOperationException异常 Peek 返回栈顶的元素,但不删除它 Contains 确定某个元素是否在栈中,如果是,就返回true. 链表 Lin...

【转载】C#使用InsertRange方法往ArrayList集合指定位置插入另一个集合【图】

在C#的编程开发中,ArrayList集合是一个常用的非泛型类集合,ArrayList集合可存储多种数据类型的对象。在实际的开发过程中,我们可以使用InsertRange方法在ArrayList集合指定位置插入另一个集合的所有数据,InsertRange方法的签名为virtual void InsertRange(int index, ICollection c),参数index代表插入的位置索引信息,c则代表用于插入的集合对象。 InsertRange方法与Insert方法相比,两者都是往ArrayList集合中的指定位置插入...

【转载】C#中ArrayList集合类使用RemoveAt方法移除指定索引的元素【图】

ArrayList集合是C#中的一个非泛型的集合类,是弱数据类型的集合类,可以使用ArrayList集合变量来存储集合元素信息,任何数据类型的变量都可加入到同一个ArrayList集合中,在ArrayList集合中,如果需要移除指定索引位置的元素,可以使用ArrayList集合的RemoveAt方法,RemoveAt方法的签名为virtual void RemoveAt(int index),参数index表示移除元素所在的索引位置。 示例如下,新建一个ArrayList集合对象arrayList,往其中写入3个元...

C#中的并发集合【代码】

我正在寻找一种在C#中获得并发集合的方法,或者至少是一个支持并发枚举器的集合.现在,当我迭代的集合发生变化时,我得到一个InvalidOperationException.我可以深入复制该集合并使用私有副本,但我想知道是否有更好的方法 代码段:foreach (String s in (List<String> )callingForm.Invoke(callingForm.delegateGetKillStrings)){//do some jazz}– 编辑 – 我接受了答案,但也发现我需要确保写入集合的代码也需要尝试获取锁定.private...

c# – 如何使用XmlAttributeOverrides覆盖集合元素的xml元素名称?【代码】

我有一个非常基本的对象对象模型,由System.Xml.XmlSerialization东西序列化.我需要使用XmlAttributeOverrides功能为子元素集合设置xml元素名称.public class Foo{public List Bars {get; set; } }public class Bar {public string Widget {get; set; } }使用标准的xml序列化程序,这将成为<Foo><Bars><Bar>...</Bar></Bars></Foo>我需要使用XmlOverrideAttributes来说明这一点<Foo><Bars><SomethingElse>...</SomethingElse></Bars>...

c# – 将具体类型的泛型集合转换为基类型的集合【代码】

我有很多实现特定接口(ISearchable)的类,我想从静态方法返回基类型(ISearchable)的IEnumerable,但是我不知道如何在没有中间的情况下转换它集合. 代码非常简单,域对象的实现之一就是这样:public class account : ISearchable {public static IEnumerable<ISearchable> Search(string keyword){// ORMVendorCollection<T> implements IQueryable<T>ORMVendorCollection<account> results = /* linq query */// this works if I chan...

c# – .NET集合和泛型如何工作?

我是一名实习软件工程师,我做了关于收集和仿制的自学,并向我的TL报告.他建议我也研究这些东西. 特别是在泛型中如何为泛型类型定义内存,IL和CLR如何用于泛型? 通用过度收集或拳击拆箱的性能? 我用谷歌搜索,但得到了限制的答案.可以请任何人解释或提供任何事项(链接)上学习. 谢谢.解决方法:由Andrew Kennedy和Don Syme设计和实现.NET公共语言运行时的泛型,讨论了在CLR上实现泛型的理论.http://research.microsoft.com/pubs/64031/d...

c#数组或集合【代码】

你会怎么做?我有一个数据列表,有两件事需要存储价格和项目,无论如何将数据存储在一个数组而不知道我将拥有的总行数?或者我应该使用一个集合,那些可以是多维的吗? 谢谢解决方法:是的 – 我建议您查看通用列表.使用此功能,您可以为数据建模并存储任意数量的项目. 例如public class PricedItem{public decimal Price { get; set; }public object Item { get; set; }}然后可以在List< PricedItem>中存储/检索它们. – 或作为’定价商...

c# – EF Code First允许ICollection属性为空集合而不是null的约定?【代码】

我注意到,默认情况下,Entity Framework Code First忽略了实例化ICollection< T>属性,除非集合中至少有一个项目.我更希望保证集合总是一个空的HashSet(即一个零项的HashSet),而不是如果没有项目则为null. EF Code First是否有任何约定或设置可以启用此功能?解决方法:在实体的构造函数中,只需设置实例化集合:public sealed partial class EntityClass {[SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsIn...

c# – List上的Select()是否会丢失集合的大小?【代码】

在下面的代码中,Select()方法是否足够智能,以便将ToArray()方法内部的列表大小保持在便宜状态?List<Thing> bigList = someBigList; var bigArray = bigList.Select(t => t.SomeField).ToArray();解决方法:这很容易检查,而无需查看实现.只需创建一个实现IList< T>的类,并在Count属性中添加一个跟踪:class MyList<T> : IList<T>{private readonly IList<T> _list = new List<T>();public IEnumerator<T> GetEnumerator(){return _l...

c# – 为什么集合初始值设定项不与表达式body属性一起使用?【代码】

我认为现在最好显示代码:class Foo {public ICollection<int> Ints1 { get; } = new List<int>();public ICollection<int> Ints2 => new List<int>(); }class Program {private static void Main(string[] args){var foo = new Foo{Ints1 = { 1, 2, 3 },Ints2 = { 4, 5, 6 }};foreach (var i in foo.Ints1)Console.WriteLine(i);foreach (var i in foo.Ints2)Console.WriteLine(i);} }显然,Main方法应该打印1,2,3,4,5,6,但它只打印...

c# – 如何使用集合来存储委托?【代码】

我希望有一个哈希表,其中字符串为键,而functionpointer(委托)为值.这样在给定基于字符串的命令的情况下调用正确的例程但是,编译器不会吃它. 我究竟做错了什么?//declarationpublic delegate void categoryHandler(String request); //init codeHashtable categories = new Hashtable();categories.Add("campaigns", Campaigns.post);//function callString category = "campaigns";categoryHandler handler = (categoryHandle...

c# – 用于从集合中删除对象的迭代器的Java模拟【代码】

在Java中,我可以使用Iterator.remove()方法http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Iterator.html#remove()迭代集合并从中删除一些对象 这非常自然而且很自然.就像你正在寻找冰箱里的食物,扔掉过期日期的食物.如何在c#中做同样的事情? 我想在同一个循环中迭代和清理集合. 有几个相关的问题,例如How to iterate and update a list但是我仍然无法在c#中找到此操作的确切副本解决方法:如果您正在使用List< T>,则可以...

c# – 绑定集合的子集【代码】

我有一个ObservableCollection< Person>宾语. Person对象具有Name和Type属性,其中Type是student或Teacher.有没有办法将ComboBox绑定到ObservableCollection的子集< Person>对象,Type属性只是老师?解决方法:您可以按照以下方式以编程方式执行此操作:MyComboBox.ItemsSource = a.Where((obj, r) => { return (obj.Type == "student"); }).ToList();

C#:如何从LINQ的IDictionary>集合中删除项目?【代码】

这是我想要做的:private readonly IDictionary<float, ICollection<IGameObjectController>> layers;foreach (ICollection<IGameObjectController> layerSet in layers.Values){foreach (IGameObjectController controller in layerSet){if (controller.Model.DefinedInVariant){layerSet.Remove(controller);}}}当然,这不起作用,因为它会导致并发修改异常. (在某些迭代器上是否有相当于Java的安全删除操作?)如何正确地执行此操作...