【发布时间】:2015-08-04 08:43:01
【问题描述】:
我有一个 DataTable,我想从中循环遍历每一行和每一列,然后根据列/每一行中的其他值从特定列中选择一个值。
我的代码目前如下所示:
foreach (DataRow drow in dt.Rows)
{
foreach (DataColumn dcol in dt.Columns)
{
foreach (var Item in ImportData)
{
if (Item.Value.Equals(true))
{
if (Item.Key.Equals("" + dcol))
{
string value = drow[dcol].ToString();
if (value.Equals("X"))
{
outDraws += drow["Drawing"].ToString();
outDraws += "\n";
}
}
}
}
}
}
ImportData 是一个Dictionary<string, bool>,它包含我想与我的 DataTable 进行比较的数据。
string outDraws 只是一个字符串,它应该包含我要打印的图纸的内容。
我现在的问题是我只想打印行的“绘图”列中的内容,其中与 ImportData 中的键同名的所有列都具有“X”作为值。目前,我正在获取所有行,其中任何列的值都为“X”,并且与 ImportData 中的任何键具有相同的名称。
我知道您很难得到我想要做的事情,但请询问您是否需要更多信息,我会尽力提供。
提前非常感谢。
编辑:
ImportData 包含不同产品的名称作为键。客户是否已通过其他程序选择了这些产品,如果它们已被选中,则值为 true,如果未选中,则值为 false。
使用上面介绍的方法,我想将所有值为 true 的键与 DataTable 中的列名进行比较。如果列名对应于 ImportData 中的键(即产品名称),那么我想检查特定行中的该列是否具有“X”作为值。
这适用于 ImportData 中的所有键,最后我应该知道 DataTable 中的哪一行在所有与 ImportData 中的键同名的列中都有一个“X”。对于这一行,我想获取名为“绘图”的列的内容。 因此,例如说 ImportData 包含:
[电机,真][Product6,真][Product7,真]
然后我想打印出第 6 行的绘图列。
很遗憾,我无法发布图片..
【问题讨论】:
-
那只检查绘图列,不检查所有列?
-
我想检查所有列,并且只有与 ImportData 中的所有键同名的所有列都有一个“X”我想打印出绘图列跨度>
-
请详细解释 ImportData 包含什么,数据表中的内容以及您想要实现的目标。也许添加一个简单但完整的示例,可以编译为控制台应用程序。
标签: c# dictionary datatable