List<Object> rollerliste = (from row in roller.AsEnumerable() select (row["rolName"])).ToList();
List<Object> yetkiliste = (from row in roller.AsEnumerable() select (row["Visible"])).ToList();
for(int r = 0; r < rollerliste.Count(); r++)
{
for (int y = 0; y < yetkiliste.Count(); y++)
{
if(rollerliste[r].ToString() == "frmMasalar" && yetkiliste[y].ToString() == "true" && r == y)
{
cu.frmMasalar = 1;
}
else
{
cu.frmMasalar = 0;
}
}
}
实际上if(rollerliste[r].ToString() == "frmMasalar" && yetkiliste[y].ToString() == "true" && r == y)
它似乎在检查正确的数据,但不工作。
rollerliste | yetkiliste | frmMasalar | 对 |
---|---|
frmYonetim | 对 |
请注意,在循环中,您将一遍又一遍地覆盖cu.frmMasalar
这可能就是你得不到你想要的东西的原因。
cu.frmMasalar = 0;
foreach(var row in roller.AsEnumerable()) {
if((string) row["rolName"] == "frmMasalar" && (bool) row["Visible"]) {
cu.frmMasalar = 1;
break;
}
}
也有更简洁的方法来做到这一点,如果重点是找到一个条目rolName == "frmMasalar"
:
cu.frmMasalar = 0;
var matchingRow = roller.AsEnumerable()
.FirstOrDefault(r => (string) r["rolName"] == "frmMasalar"
&& (bool) row["Visible"]);
if(matchingRow != null)
cu.frmMasalar = 1;