Ich möchte eine Liste erstellen, die zwei int-Werte enthält, sagen wir arrfirst
und eine andere Liste, die Listen von arrfirst
enthält, sagen wir arrsecond
, dann prüfen, ob arrsecond
ein enthält definiert arrfirst
. Jetzt habe ich Listen erstellt, aber wenn ich versuche, .Contains
zu verwenden, funktioniert es nicht.Wie überprüft man, ob eine Liste von Listen eine andere Liste enthält
List<List<int>> Eklenenler = new List<List<int>>();
for (int i = 0; i < YourTable.Rows.Count; i++)
{
prjAd = YourTable.Rows[i].Field<string>("F1");
if (prjAd != "Servis Adresi")
{
wesAd = YourTable.Rows[i].Field<string>("F2");
RowPrj = tbProjeler.AsEnumerable().Where(r => r.Field<string>("prjAd") == prjAd).FirstOrDefault();
RowWes = tbServisler.AsEnumerable().Where(k => k.Field<string>("wesAd") == wesAd).FirstOrDefault();
prjId = RowPrj.Field<int>("prjId");
wesId = RowWes.Field<int>("wesId");
List<int> temp = new List<int>();
temp.Add(prjId);
temp.Add(wesId);
if (!Eklenenler.Contains(temp))
{
sqlExProjeEkle = "INSERT INTO NLK_PRJ_Webservisler (prjId,wesId) Values (" + prjId + "," + wesId + ")";
dco.Execute(sqlExProjeEkle);
Eklenenler.Add(temp);
}
else
{
}
}
}
Dies ist mein Code. Wenn ich debugging, kann ich sehen temp
Werte sind richtig und auch bei der zweiten Schleife, temp
ist in Eklenenler
Liste, aber es geht immer in if
Block. Zum Beispiel, erste Schleife zeigt und temp[1]=42
geht in Block und in der zweiten Schleife wieder und temp[1]=42
auch Eklenenler[0][0]=36
und Eklenenler[0][1]=42
so enthält es Temp, aber es geht immer noch in. Wie kann ich dieses Problem lösen und warum dies falsch und kann nicht zurückgegeben finden Sie diese temp
in Eklenenler
. Vielen Dank.
'if (row.sequenceEquals (anotherRow))'? –