代码之家  ›  专栏  ›  技术社区  ›  Anyname Donotcare

IndexOf()方法始终返回-1

  •  2
  • Anyname Donotcare  · 技术社区  · 14 年前

    我有两个结构相同的数据表

    第一排和第二排有一排

    第二个有一组行

    我想要的是得到第二个数据表中第一个数据表的行旁边的行。

    DataTable temp = new DataTable();
    temp = dt.Clone();
    DataColumn[] keyColumn = new DataColumn[1];
    keyColumn[0] = temp.Columns["photoId"];
    temp.PrimaryKey = keyColumn;
    temp = (DataTable)(Session["currentImage"]);
    DataRow[] drr = new DataRow[1];
    
    index = dt.Rows.IndexOf(temp.Rows[0]);
    

    但是索引总是有一个值=-1

    虽然临时行[0]它的内容一直在更改

    当我写作的时候数据行索引(dt.行[1] )举个例子,我得到1

    但这不是我想做的,我想做的就是在第二个dataTable中的第一个dataTable的datarow旁边获取datarow

    2 回复  |  直到 13 年前
        1
  •  6
  •   Jon Skeet    14 年前

    A DataRow 知道它在哪个表中,所以具有相同数据但在不同表中的两行仍然是不同的行。

        2
  •  3
  •   Nissim    14 年前

    IndexOf()使用对象的默认比较器执行匹配。 大多数对象的默认比较器是reference comparison,这解释了为什么总是得到-1。

    int iA = 0;
    int iB = 0;
    object oA = 0;
    object oB = 0;
    
    iA == iB = true;
    oA == oB = false