C# 如何检查列表列表是否包含其他列表
我想创建一个包含两个int值的列表,比如说它C# 如何检查列表列表是否包含其他列表,c#,list,C#,List,我想创建一个包含两个int值的列表,比如说它arrfirst,另一个列表包含arrfirst的列表,比如说它arrsecond,然后检查arrsecond是否包含定义的arrfirst。现在我创建了列表,但当我尝试使用.Contains时,它不起作用 List<List<int>> Eklenenler = new List<List<int>>(); for (int i = 0; i < YourTable.Rows.Count; i+
arrfirst
,另一个列表包含arrfirst
的列表,比如说它arrsecond
,然后检查arrsecond
是否包含定义的arrfirst
。现在我创建了列表,但当我尝试使用.Contains
时,它不起作用
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
{
}
}
}
List ekleneler=new List();
for(int i=0;ir.Field(“prjAd”)==prjAd.FirstOrDefault();
RowWes=tbServisler.AsEnumerable()。其中(k=>k.Field(“wesAd”)==wesAd.FirstOrDefault();
prjId=行PRJ.字段(“prjId”);
wesId=RowWes.Field(“wesId”);
列表温度=新列表();
临时添加(prjId);
温度添加(wesId);
如果(!ekleneler.Contains(temp))
{
sqlExProjeEkle=“插入NLK_PRJ_webservicer(prjId,wesId)值(“+prjId+”,“+wesId+”);
dco.Execute(sqlExProjeEkle);
Eklenler.添加(温度);
}
其他的
{
}
}
}
这是我的密码。当我调试时,我可以看到
temp
值是正确的,并且在第二个循环中,temp
在ekleneler
列表中,但它总是在if
块中。例如,第一个循环显示temp[0]=36
和temp[1]=42
进入if块,第二个循环再次显示temp[0]=36
和temp[1]=42
也显示ekleneler[0][0]=36
和ekleneler[0][1]=42
,因此它包含temp,但仍然进入。我如何解决此问题,以及为什么返回false并且在ekleneler
中找不到此temp
。谢谢。你可以用linq在一行中完成,就像这样
if (!Eklenenler.Any(c => c.SequenceEqual(temp)))
{
sqlExProjeEkle = "INSERT INTO NLK_PRJ_Webservisler (prjId,wesId) Values (" + prjId + "," + wesId + ")";
dco.Execute(sqlExProjeEkle);
Eklenenler.Add(temp);
}
else
{
}
别忘了加上
using System.Linq;
你可以用linq在一行中完成,就像这样
if (!Eklenenler.Any(c => c.SequenceEqual(temp)))
{
sqlExProjeEkle = "INSERT INTO NLK_PRJ_Webservisler (prjId,wesId) Values (" + prjId + "," + wesId + ")";
dco.Execute(sqlExProjeEkle);
Eklenenler.Add(temp);
}
else
{
}
别忘了加上
using System.Linq;
这里有一个使用foreach循环的答案
foreach (List<int> list in Eklenenler)
{
if (list.SequenceEqual(temp))
{
//Do work
}
}
foreach(ekleneler中的列表)
{
if(列表顺序相等(温度))
{
//工作
}
}
这里有一个使用foreach循环的答案
foreach (List<int> list in Eklenenler)
{
if (list.SequenceEqual(temp))
{
//Do work
}
}
foreach(ekleneler中的列表)
{
if(列表顺序相等(温度))
{
//工作
}
}
if(row.SequenceEquals(anotherRow))
?if(row.SequenceEquals(anotherRow))
?