- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有密码
foreach (DataColumn dataTableCol in this.dataTable.Columns)
{
bool columnFound = false;
foreach (GRTColumnView uiColumn in descriptor.UIColumns)
{
if (dataTableCol.ColumnName.Equals(uiColumn.Name))
{
columnFound = true;
break;
}
}
if (!columnFound)
{
if (this.dataTable.Columns.Contains(dataTableCol.ColumnName))
this.dataTable.Columns.Remove(dataTableCol.ColumnName);
}
}
如果在另一个集合中找不到某些“东西”,我想从集合中删除它们。
当我运行上面的程序时,我得到
Iteration may not execute as collection was modified
“集合已修改”- 因为删除一定已被命中
那么实现这样的事情的方法是什么?
我能想到的是记下所有要删除的“东西”,然后
foreach( aThing in all_things_to_remove)
remove_from_collection(aThing)
但上面对我来说似乎不是一个好方法,因为我必须进行另一个循环并且正在使用额外的内存
最佳答案
在这种特定情况下,您要遍历一个包含几列的小集合,您可以只创建一个新集合(通过 ToList()
),这样您就不会迭代在您正在修改的同一集合上:
foreach (var dataTableCol in dataTable.Columns.Cast<DataColumn>().ToList())
{
...
dataTable.Columns.Remove(dataTableCol.ColumnName);
}
推荐的方法是向后枚举:
for (var i = dataTable.Columns.Count - 1; i >= 0; i--)
{
...
dataTable.Columns.Remove(dataTable.Columns[i].ColumnName);
}
关于c# - 如何以编程方式从 DataTable 中删除 DataColumn,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27934943/
我正在尝试为 DataColumn 设置默认值。如何为下面的代码设置 DataColumn (column3) 的默认值 DataTable dt = new DataTable(); dt.Colu
给出这样的表达式 DataTable1.Columns.Add("value", typeof(double), "rate * loan_amt"); 在一个包含 10000 行的数据表中,所有行
如何在循环行时替换列值? 我的 DataTable 有两列,我想替换每一行第一列的值。我无法获取或设置列值。到目前为止,我只管理访问 DefaultValue 和 ColumnName 等。 即使创建
我有一个数据库列,我只需要检查其中是否有值。 DataTable dt = masterDataSet.Tables["Settings"]; DataColumn S
DataColumn.Expression 可以使用扩展方法来支持替换功能吗? 如果是,是否有可用的示例代码? 谢谢。 最佳答案 Probably not in the way you're thin
我正在大量使用字典来解耦一些(高度耦合的)代码。以下是与我的问题相关的内容: //Output table System.Data.DataTable dtOutput = new System.Da
将 DataColumn 值转换为字符串数组时的最佳做法? [编辑]要将所有 DataTable 行的特定 DataColumn 的所有值都转换为字符串数组? 最佳答案 如果我理解您的目标,您想要指定
有没有比这更好的方法来检查 DataTable 中的 DataColumn 是否为数字(来自 SQL Server 数据库)? Database db = DatabaseFactory.Crea
如何获取 DataColumn 对象的原始数据格式(在数据库中)? 我有来自 DataTable 的 DataColumn 对象,它是打开 DBCommand SQL“选择”查询的结果的一部分。 如何
我有一个 DataTable 对象,可以访问它的 Columns 集合。对于此集合中的每一项,我需要确定列的类型并将其作为以下字符串之一返回:'string' 'number' 'boolean' '
我正在编写一些基于大量动态数据创建新的 Sqlite 数据库的 C# 代码,我卡在了一个部分,它试图确定是否需要为即将到来的新数据创建或更改列中。 通过获取 DataTable 并查看 DataCol
我有一个来自 SQL 请求的数据表。虽然我实际上是在使用 OLEDB 处理表,但即使我从 SQL 服务器获取表,我也会遇到同样的问题。 如果我填充数据表然后查询 DataColumns - 他们都说
我正在创建一个报告组件,该组件采用 IEnumerable 输入并执行一些转换和聚合,并返回一个具有动态列数的新 IEnumerable。我为此使用 ADO.NET,因为创建具有适当列的 DataTa
我以编程方式将一列分配给 DataTable,如下所示: myDataTable.Columns.Add(myDataColumn); 有没有办法以编程方式设置列的宽度/大小? 最佳答案 Column
我有密码 foreach (DataColumn dataTableCol in this.dataTable.Columns) { bool
我正在读取 CSV 文件,其中第一行是标题行。读取所有列名并将其放入表中,如下所示: foreach (var item in lines[0].Split(';').Where(s => !stri
我正在尝试创建一个 DataTable 并将其绑定(bind)到 DataGridView。它有效,但我无法通过 Caption 属性设置列标题。它使用 ColumnName(“City”)来显示标题
如何将设置为 string 类型的 GUID DataColumn 转换为类型为 Guid 的 GUID DataColumn?源数据中的一列类型错误,我无法在那里更改它。 最佳答案 一旦数据表填充了
我可以将 DataCell 置于 DataRow 的中心,但是对于 DataColumn 标签,您如何做到这一点? 我希望第一个 DataColumn 左对齐,其余居中。将标签包裹在中心小部件中不会生
我有一个包含 xml 列的 SQL Server 数据表。我使用 DataTable(SqlDataAdapter 类的 Fill 方法)运行选择查询。执行后该列的类型为string。 我想知道如何根
我是一名优秀的程序员,十分优秀!