【发布时间】:2014-05-22 03:35:37
【问题描述】:
问题一:
我正在编写一个查询来获取 DataTable 中一行的索引:
var index = from row in DataTable1.AsEnumerable()
let r = row.Field<string>("Column1")
where r == strColumn1
select DataTable1.Rows.IndexOf(row);
然后我尝试对多个列进行此操作
var index = from row in DataTable1.AsEnumerable()
let r = row.Field<string>("Column1") && s = row.Field<int>("Column2")
&& t = row.Field<string>("Column3") && u = row.Field<string>("Column4")
where r == strColumn1 && s == intColumn2 && t == strColumn3 && u == strColumn4
select DataTable1.Rows.IndexOf(row);
有可能吗?
问题2:
来自@DominicZukiewicz 的回答在这样的多个列上使用let 时,出现错误:
var index = from row in DataTable1.AsEnumerable()
let r = row.Field<string>("Column1")
let s = row.Field<int>("Column2")
let t = row.Field<string>("Column3")
let u = row.Field<string>("Column4")
where r == strColumn1 && s == intColumn2 && t == strColumn3 && u == strColumn4
select DataTable1.Rows.IndexOf(row);
DataTable1.Rows[index]["Columnx"] = intUpdateValueColumnx;
DataTable1.Rows[index]["Columny"] = intUpdateValueColumny;
DataTable1.Rows[index]["Columnz"] = intUpdateValueColumnz;
DataTable1.AcceptChanges();
它的形式是:
附加信息:无法将“System.Data.EnumerableRowCollection`1[System.Int32]”类型的对象转换为“System.IConvertible”类型。
我哪里错了?
【问题讨论】:
-
我已经编辑了你的标题。请参阅“Should questions include “tags” in their titles?”,其中的共识是“不,他们不应该”。
-
@cahmad:请您不在给出答案后更新您的问题,以便包含更多问题。您可以在另一个问题中交叉关联它们,但这意味着答案与问题不同步。