3 つのテーブルを含むデータセットがあります。1 つのテーブルの列アイテムを他の 2 つのテーブルの列アイテムと比較したいのですが、これを行うためにネストされた foreach ループを使用しています。コードが本来よりも多くのデータを返しているので、何かを台無しにしたような気がします。また、これを行うためのより良い/よりクリーンな方法があると確信しています。お気軽にお知らせください。
foreach (DataRow row in dataSet.Tables["Taxonomy"].Rows)
{
var projectTypes = row["ProjectType"].ToString();
var tier3 = row["Tier3Project"].ToString();
if (tier3.Equals(""))
tier3 = "null";
Console.WriteLine(projectTypes);
foreach (DataRow dRow in dataSet.Tables["DefaultEventTypes"].Rows)
{
var name = dRow["name"].ToString();
if (name.Equals(""))
name = "null";
/****** Begin Comparisons ******/
if (projectTypes.Trim().ToLower().Equals(name.Trim().ToLower()))
{
foreach (DataRow sRow in dataSet.Tables["ScheduleEvents"].Rows)
{
var nameShort = sRow["nameShort"].ToString();
/****** Compare to ScheduleEvent ******/
if (projectTypes.Trim().ToLower().Equals(nameShort.Trim().ToLower()))
{
//Update both DefaultEventType and ScheduleEvent
Console.WriteLine(projectTypes + " " + name + " " + tier3);
counter++;
}
else
{
}
}
}
else
{
foreach (DataRow sRow in dataSet.Tables["ScheduleEvents"].Rows)
{
var nameShort = sRow["nameShort"].ToString();
/****** Compare to ScheduleEvent ******/
if (projectTypes.Trim().ToLower().Equals(nameShort.Trim().ToLower()))
{
//Update ScheduleEvent
}
}
}
/****** End Comparisons ******/
}
}
必要に応じて明確にすることができます、ありがとう!
編集:
テーブル 'Taxonomy' からアイテムを取得し、それをテーブル 'DefaultEventTypes' のすべての行と比較したいと考えています。一致する場合は、「分類」項目を「ScheduleEvent」のすべての行と比較します。
最終的には、更新ステートメントを追加して、一致するアイテムを新しい名前に変更し、テーブルをデータベースに保存したいと考えています。
比較を行っているようですが、返される値の数が多すぎます。