检查列表列表中的元素是否包含另一个列表
Check if element in list of lists contains another list
我有 List
个 Lists
或 arrays
个。它包含某些有序序列:
0 1 2 3
4 5 6
23 24 25 28
等等
我想添加另一个序列,但前提是它是唯一的(简单的)并且 Lists
中的任何一个都不包含它。例如:
0 1 2
会被拒绝,函数会returnfalse
,
9 10
将被接受,函数将 return true
.
如果我没理解错的话,你想搜索 List<List<int>>
中的所有列表,看看是否包含一组数字,如果 none 包含,则将数字添加为一个新列表。
一种方法是使用 Linq:
public static void AddListIfNotExist(List<List<int>> lists, List<int> newList)
{
if (lists == null || newList == null) return;
if (!lists.Any(list => newList.All(item => list.Contains(item))))
{
lists.Add(newList);
}
}
在使用中它可能看起来像:
var lists = new List<List<int>>
{
new List<int> { 0, 1, 2, 3 },
new List<int> { 4, 5, 6 },
new List<int> { 23, 24, 25, 28 }
};
var newList1 = new List<int> { 0, 1, 2 };
var newList2 = new List<int> { 9, 10 };
AddListIfNotExist(lists, newList1);
AddListIfNotExist(lists, newList2);
我有 List
个 Lists
或 arrays
个。它包含某些有序序列:
0 1 2 3
4 5 6
23 24 25 28
等等
我想添加另一个序列,但前提是它是唯一的(简单的)并且 Lists
中的任何一个都不包含它。例如:
0 1 2
会被拒绝,函数会returnfalse
,
9 10
将被接受,函数将 return true
.
如果我没理解错的话,你想搜索 List<List<int>>
中的所有列表,看看是否包含一组数字,如果 none 包含,则将数字添加为一个新列表。
一种方法是使用 Linq:
public static void AddListIfNotExist(List<List<int>> lists, List<int> newList)
{
if (lists == null || newList == null) return;
if (!lists.Any(list => newList.All(item => list.Contains(item))))
{
lists.Add(newList);
}
}
在使用中它可能看起来像:
var lists = new List<List<int>>
{
new List<int> { 0, 1, 2, 3 },
new List<int> { 4, 5, 6 },
new List<int> { 23, 24, 25, 28 }
};
var newList1 = new List<int> { 0, 1, 2 };
var newList2 = new List<int> { 9, 10 };
AddListIfNotExist(lists, newList1);
AddListIfNotExist(lists, newList2);