for (int X = 0; X < dtNouki.Rows.Count; X++)
{
strWord = dtNouki.Rows[X]["word"].ToString();
dtNouki.Rows[X]["X"] = X;
string tgtZUBAN = dtNouki.Rows[X]["NOUZUBAN"].ToString();
var aimai =
dtZaiko.AsEnumerable().Where(i => i["ZAIZUBAN"].ToString().Contains(strWord));
var kanzen =
dtZaiko.AsEnumerable().Where(i => i["ZAIZUBAN"].ToString().Contains(tgtZUBAN));
var temp = aimai;
if (temp.Any())
{
DataTable dt = temp.CopyToDataTable();
int rowCNT = dt.Rows.Count;
string imazu = dtNouki.Rows[X]["NOUZUBAN"].ToString();
string atozu = "";
int sameCNT = 1;
if (X < dtNouki.Rows.Count - 1)
{
atozu = dtNouki.Rows[X + 1]["NOUZUBAN"].ToString();
for (int cnt = 1; imazu == atozu; cnt++)
{
sameCNT++;
atozu = dtNouki.Rows[X + sameCNT]["NOUZUBAN"].ToString();
}
}
int dif = rowCNT - sameCNT;
if (sameCNT < rowCNT)
{
for (int ar = 1; ar <= dif; ar++)
{
DataRow addar = dtNouki.NewRow();
dtNouki.Rows.InsertAt(addar, X + ar);
}
X = X + dif;
}
else { dif = 0; }
if (dif > 0) { X = X - dif; }
for (int ar = 0; ar <= rowCNT - 1; ar++)
{
if (ar != 0) { X = X + 1; }
dtNouki.Rows[X]["X"] = X;
dtNouki.Rows[X]["aimai"] = dt.Rows[ar]["ZAIZUBAN"].ToString();
if (tgtZUBAN == dt.Rows[ar]["ZAIZUBAN"].ToString())
{
dtNouki.Rows[X]["hantei"] = "完全一致";
}
else
{
dtNouki.Rows[X]["hantei"] = "部分一致";
}
dtNouki.Rows[X]["LOT"] = dt.Rows[ar]["LOT"].ToString();
dtNouki.Rows[X]["SNOUKI"] = dt.Rows[ar]["SNOUKI"].ToString();
dtNouki.Rows[X]["BIKOU"] = dt.Rows[ar]["BIKOU"].ToString();
if (X > 0 && dtNouki.Rows[X]["aimai"].ToString() == dtNouki.Rows[X - 1]["aimai"].ToString())
{
dtNouki.Rows[X]["aimai"] = "";
if (X > 0 && dtNouki.Rows[X]["hantei"].ToString() == dtNouki.Rows[X - 1]["hantei"].ToString())
{
dtNouki.Rows[X]["hantei"] = "";
}
}
}
if (dif > 0)
{
dif = dif - (rowCNT - 1);
X = X + dif;
}
else
{
X = X + sameCNT - 1;
}
}
else
{
dtNouki.Rows[X]["hantei"] = "なし";
X++;
}
}
dataGridView1.DataSource = dtNouki;