如何找到列表列表中的任何列表是否包含另一个列表中的所有元素?
类似于列表列表.contains(列表),其中列表(列表)是stanjaDKA
,列表是tmpzaNormalanPrijelaz
,所有列表成员都是int类型?
我尝试了这个,但最后我在stanjaDKA
找到了很多州。
int indeks=stanjaDKA.FindIndex(x=>x.Equals(tmpzaNormalanPrijelaz));
if (indeks==-1 && tmpzaNormalanPrijelaz.Count>0)
{
stanjaDKA.Add(tmpzaNormalanPrijelaz);
}
答案 0 :(得分:1)
如何找到X列表中的任何X
使用LINQ的Any
:
bool anyXInListOfX = myListOfX(x => someConditionOnX);
列表包含另一个列表中的所有元素
如果您不关心重复元素(即如果您对{1}
包含{1, 1}
中的所有元素感到高兴),可以使用LINQ的Except
并检查是否存在什么都没有留下:
bool firstListContainsAllElementsInSecondList =
!mySecondList.Except(myFirstList).Any();
但是,“任何列表包含所有元素”等同于“所有列表不包含所有元素”和{ {1}}取消了上面的don't
,所以在你的情况下我会做类似的事情
!
如果“如果所有 if (stanjaDKA.All(l => tmpzaNormalanPrijelaz.Except(l).Any()))
{
stanjaDKA.Add(tmpzaNormalanPrijelaz);
}
中的每个<{em}}中的列表都缺少 stanjaDKA
中的至少一个元素,则为{em> {1}}至tmpzaNormalanPrijelaz
“。
答案 1 :(得分:0)
取决于你真正想要的东西,这将有助于你做市长的事情
// Sample List<List<int>>
var listList = new List<List<int>>();
listList.Add(new List<int>() { 0, 1, 2, 3, 4 });
listList.Add(new List<int>() { 0, 1, 2, 3, 4 });
listList.Add(new List<int>() { 1, 1, 2, 3, 4 });
listList.Add(new List<int>() { 1, 1, 1, 1, 1 });
listList.Add(new List<int>() { 5, 6, 7, 8, 9 });
// the List you are seaching for
var searchList = new List<int>() { 10 };
foreach(List<int> list in listList)
{
var newList =list.Intersect(searchList);
if (newList.Count() == searchList.Count)
{
string elements = "";
foreach (int item in newList)
{
elements += item + " ";
}
Console.WriteLine(elements);
}
}
Console.ReadLine();
你也应该看看这个Link也许你需要它