Tag: 列表

是否可以更改基本数据类型的默认值?

我最近创建了一个通用的Matrix 类,它充当List <List >集合的包装器。 据我所知,这堂课工作得很好。 关于T的默认值,我遇到了一个小问题。 我创建了一个Matrix (3,3)的实例,它创建了一个3×3的整数矩阵,默认使用默认值(T)默认为0。 我知道值类型(包括基元)默认为0等效,引用类型默认为null。 我想知道是否可以更改此默认值,以便如果将值类型传递到Matrix,它将填充5,例如,而不是0。 我尝试创建自己的struct(值类型),但由于无法在结构体中使用无参数构造函数,我找不到从0更改默认值的方法。 我怀疑更改默认值是不可能的,并且我必须在实例化后逐个单元地循环遍历Matrix,但我想在这里询问以防万一。

序列化List 的XmlSerializer的构造函数在与XmlAttributeOverrides一起使用时会抛出InvalidOperationException

摘要 使用XmlSerializer类时,使用XmlAttributeOverrides序列化List (其中T可以使用XmlSerializer序列化而没有问题),例如: using xmls = System.Xml.Serialization; … xmls.XmlAttributeOverrides attributeOverrides = new xmls.XmlAttributeOverrides(); attributeOverrides.Add(typeof(T), new xmls.XmlAttributes() { XmlRoot = new xmls.XmlRootAttribute(“foo”) }); attributeOverrides.Add(typeof(List), new xmls.XmlAttributes() { XmlArray = new xmls.XmlArrayAttribute(“foobar”), XmlArrayItems = { new xmls.XmlArrayItemAttribute(“foo”) }, }); 将在最内层的exception处抛出以下InvalidOperationExcpetion: System.InvalidOperationException: XmlRoot and XmlType attributes may not be specified for the type System.Collections.Generic.List`1[[T, programname, Version=versionnumber, Culture=neutral, PublicKeyToken=null]]. […]

搜索列表表示字符串.StartsWith()

我有一个 List 有1500个字符串。 我现在使用以下代码只提取以字符串prefixText开头的字符串。 foreach(string a in ) { if(a.StartsWith(prefixText, true, null)) { newlist.Add(a); } } 这很快,但我正在寻找谷歌快速。 现在我的问题是,如果我按字母顺序排列List,那么比较char by char我可以加快速度吗? 或者其他任何有关加快速度的建议?

如何从用户定义类列表中删除元素?

我是c#的新手,请对我温柔,我一直在网上搜索几个小时没有成功,我想从用户定义的类中删除一个元素。 我该怎么做? 下面是代码的片段。 public class Level2 { public double price { get; set; } public long volume { get; set; } public Level2(double price, long volume) { this.price = price; this.volume = volume; } } static void Main() { List bid = new List(); ask.Add(new Level2(200, 500)); ask.Add(new Level2(300, 400)); ask.Add(new Level2(300, 600)); // how […]

解析包含数组的字符串

我想将包含递归字符串数组的字符串转换为深度为一的数组。 例: StringToArray(“[a, b, [c, [d, e]], f, [g, h], i]”) == [“a”, “b”, “[c, [d, e]]”, “f”, “[g, h]”, “i”] 看起来很简单。 但是,我来自function背景,我不熟悉.NET Framework标准库,所以每次(我从头开始像3次)我最终只是简单的丑陋代码。 我最近的实施就在这里 。 如你所见,这很丑陋。 那么,C#的方法是什么呢?

如何在C#中创建List 数组?

我有一个问题,我需要一个arrayList数组。 例如,如果我们采用int的ArrayList数组,它将是: int[] myData = new int[2]; myData[0] = new List(); myData[0].Add(1); myData[0].Add(2); myData[0].Add(3); myData[1] = new List(); myData[1].Add(4); myData[1].Add(5); myData[1].Add(6); myData[0].Add(7); 我们如何在C#中实现如上所述的数据结构? 在C中,它就像一个LinkedList数组。 我怎样才能在C#中做同样的事情?

如何通过reflection访问Generic.List索引?

好吧,我有一个类,我传递一个对象作为属性。 我传递的对象是List 在我的class级我试图通过reflection访问对象索引,但我不能! 例: 这节课的作品我刚刚写下了我想给你看的部分,我需要帮助。 class MyClass { private object _recordSet; public object RecordSet { get { return _recordSet; } set { _recordSet = value; } } public string Draw() { system.reflection.Assembly asem = system.reflection.Assembly.getAssembly(_dataSource.GetType()); object instance; instance = asem.CreateInstance(_dataSource.GetType().UnderlyingSystemType.FullName); //to access de Count of my List int recordcount = int.Parse(_dataSource.GetType().GetProperty(“Count”).GetValue(_dataSource,null)); //i need to do […]

如何从另一个表单访问列表

我有两种forms,在Form1中,从类创建对象并放入列表(对象列表)。 然后我有另一个字符串列表,它应该是Form2的源 – 字符串列表包含将对象的属性转换为字符串的元素。 打开后, Form2应读取字符串列表中的数据并将其放入列表框中。 问题是它没有看到数据。 我可以访问Form1数据,所以我确定列表已填充,但Form2无法访问数据 – 如何解决这个问题? 我尝试过从论坛和其他来源获得的不同想法,但没有一个对我有用。 什么工作填充了应该是Form1’初始化组件’中的数据源的列表,但它不是一个完美的解决方案,因为对象是在单击按钮后创建的。 现在我把列表放在Form1类的顶部,但它仍然通过单击按钮填充 – 它不起作用,列表框仍然是空的。 这是Form1的代码: public partial class Form1 : Form { public House MyHouse = new House(); public List allPeopleSource = new List(); public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { Person p1 = new Person(“Simon”, 33); Person p2 […]

列表在.NET中的不同线程之间共享

我在一个类中有一个静态List,它将被不同的线程访问,每个线程都从列表中添加,读取和删除它自己的唯一项。 我想知道我是否必须担心这个变量线程安全,因为即使线程之间共享相同的List对象,它们也只修改自己的唯一项

如何使用动态对象类型创建通用List

我想创建一个Type对象的通用列表。 我有 … Type type = typeof(Foo); object model = GetModel(); 现在我要创建一个new List((Foo)model) 这可能在C#中吗?