当前位置: 首页 > 编程语言 > C#

如何设置内联集合?分享

时间:2023-04-10 18:43:53 C#

如何设置内联收藏?例如:DataTabletable=newDataTable(){Columns=newDataColumnCollection({newDataColumn("col1"),newDataColumn("col2")})});你说的是C#3中添加的CollectionInitialiser函数。它是这样完成的:DataTabletable=newDataTable(){Columns={newDataColumn("col1"),newDataColumn("col2")}};这不调用集合构造函数,它使用现有的收集。这是Columns.Add()的简写,因此它不需要Columns有一个setter。您非常接近问题中的代码!Columns属性没有设置器,因此您只能对其进行修改。这个怎么样:DataTabletable=newDataTable();table.Columns.AddRange(new[]{newDataColumn("col1"),newDataColumn("col2")});如果要在lambda中使用语句:DataTabletable=(()=>{vartable=newDataTable();table.Columns.AddRange(new[]{newDataColumn("col1"),newDataColumn("col2")});返回表;})();您可能需要删除DataColumnCollection集合初始值设定项周围的括号,并删除不匹配的最终版本)但这些都是语法问题。根本问题是Columns属性没有setter,而DataColumnCollection没有公共构造函数。基本上,您必须实例化然后调用.Columns.Add()。如果这是您必须在代码中做很多事情,您可以创建帮助程序类,为您提供更友好的语法:DataTabletable=DataTableFactory.CreateTableWithColumns("col1","col2");这有两个原因:1)Columns属性是只读的2)DataColumnCollection类没有接受列数组来对其进行初始化的构造函数。您能做的最好的事情是在一行中创建表并在另一行中添加列:DataTabletable=newDataTable();table.Columns.AddRange(new[]{newDataColumn("col1"),newDataColumn("col2")});要回答您的其他问题,IFColumns在其构造函数中有一个setter并且IFDataColumnCollection接受列,语法为:DataTabletable=newDataTable(){Columns=newDataColumnCollection(newDataColumn[]{newDataColumn("col1"),newDataColumn("col2")})});DataColumnCollection类没有构造函数,因此您无法手动创建实例。编译器的错误消息应该是不言自明的,它说:“System.Data.DataColumnCollection”类型没有定义构造函数您可以使用Add()方法将列添加到DataTable.Columns集合:DataTabletable=newDataTable();table.Columns.Add(newDataColumn("col1"));table.Columns.Add(newDataColumn("col2"));您不能使用此语法,因为Columns属性是只读的。我会使用Gabe建议的技术。以上是C#学习教程:如何设置内联集合?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: