0

以下のようなデータテーブルがあります。ここでは、行2、3、4、5は許可されていません。C#を使用してこのシナリオを検証するにはどうすればよいですか。助けてください。ここでは、列の数は固定されていません。


  A             B             C
  A             B             C
  A             B             
  A                           C
                B             C
  A             B             B
  B             B             C
  A             C             B
4

1 に答える 1

1

LinQを使用したC#

この関数は、列から重複値とnull値を削除します。探しているものがnullでない場合は、「DBNull」を必要なものに変更する必要があります。

public static DataTable FilterDataTable(DataTable table) 
    {
        // Erase duplicates
        DataView dv = new DataView(table);
        table = dv.ToTable(true, table.Columns.Cast<DataColumn>().Select(x => x.ColumnName).ToArray()); 

        // Get Null values
        List<DataRow> toErase = new List<DataRow>();
        foreach (DataRow item in table.Rows)            
            for (int i = 0; i < item.ItemArray.Length; i++)
            {
                if (item.ItemArray[i].GetType().Name == "DBNull")
                { toErase.Add(item); break; }

            }            
        //Erase Null Values
        foreach (DataRow item in toErase)            
            table.Rows.Remove(item);

        return table;            
    }
于 2012-12-16T06:47:16.943 に答える