数据集操作

时间:2009-12-08 20:45:49

标签: c# dataset

我正在使用DataSets,特别是使用DataRows数组:

我的问题是,如何在不使用LINQ的情况下执行DataRow []的联合/交叉?

3 个答案:

答案 0 :(得分:3)

就个人而言,我是通过在表之间使用Relations来实现的。

答案 1 :(得分:3)

使用Relations

答案 2 :(得分:3)

只需为其编写代码:

//Assumes setA and setB are unique internally
   public DataRow[] GetUnionRows(DataRow[] setA, DataRow[] setB){
      List<DataRow> resultList = new List<DataRow>(setA);
      foreach (DataRow row in setB){
          if (!Contains(setA, row)){
             resultList.add(row);
          }
      }
      return resultList.toArray();
   }

   private bool YourEquals(DataRow a, DataRow b){
      //Whatever
   }

   private bool Contains(DataRow[] setA, DataRow b){
      foreach(DataRow a in setA){
         if (YourEquals(a,b)){
            return true;
         }  
      }
      return false;
   }