0

Dimkeywords()As String = {"FirstName"、 "LastName"、 "Gender"}

1列だけのデータテーブルがあります。データテーブルのすべての行にすべてのキーワードが含まれているかどうかを確認したい。たとえば、

    Table1
    __________
    FirstName
    LastName
    Gender

このtable1は有効です。

    Table2
     ______
     FirstName
     Gender

このtable2は無効ですcozLastNameがありません

     Table3
      ______
      FirstName
      LastName
      Gender
      DateofBirth

このtable3も有効であり、キーワードに必要なものがすべて含まれています。どうやってやるの ?どちらが欠けているかを指摘することもできますか?たとえば、table2では、LastNameがありません。

付加価値のあるヘルプは..重複もチェックします..しかし、これは必須ではありません..最初の問題を解決できれば..私はすでにとても感謝しています..

どうもありがとう ....

4

2 に答える 2

2

LINQを使用できます。

var tableValues = table.AsEnumerable()
                       .Select(dr => dr.Field<String>("SomeColumn"))
                       .ToList();

if (keywords.Except(tableValues).Any()) {
    //Uh oh...
}

if (tableValues.Distinct().Count() < tableValues.Count) {
    //Uh oh...
}
于 2012-05-01T14:46:40.533 に答える
1

ループをDataTable行にローテーションするだけです

DataTable table = new DataTable();
// TODO: Render table

string[] keywords = { "FirstName", "LastName", "Gender" };
bool isValid = true;
bool hasDuplicates = false;
foreach (string keyword in keywords)
{
    DataRow[] rows = table.Select("Field='" + keyword + "'");
    if (rows.Count() <= 0)
    {
        isValid = false;
        break;
    }
    if (rows.Count() > 1)
    {
        hasDuplicates = true;
        break;
    }
}

if (!isValid)
{
    //TODO:
}
if (hasDuplicates)
{
    //TODO:
}
于 2012-05-01T14:53:00.023 に答える