如何基于某些黑名单获取列表项

时间:2019-06-14 07:45:11

标签: c#

我有一个黑名单int列表

List<int> blackList = new List<int>(){1, 2, 3};

我有List可以从某些资源中获取一些值 List<abc>数据包含{1,"data1"},{ 2,"data2"},{3,"data3"},{4,"data4"},{5,"data5"},{6,"data6"}等项目;

基于blackList如何获取所有已列入黑名单的项目

我尝试了Lambda表达式中的Except

我的新列表应该有{4,"data4"},{5,"data5"},{6,"data6"}

2 个答案:

答案 0 :(得分:1)

查询 时尝试使用 Linq

using System.Linq;

...

List<int> source = new List<int>()    {1, 2, 3, 4, 5, 6};
List<int> blackList = new List<int>() {1, 2, 3}; 

如果您想从source获得与众不同的项目:

var result = source.Except(blackList);

如果source可以包含您要保留的重复项

var result = source.Where(item => blackList.Contains(item));

在第二个查询中,考虑将blackList转换为HashSet<T>O(1)效率更高的O(N):{p} >

Contains

答案 1 :(得分:0)

Linq非常适合linq这样的东西:

import serial
from time import sleep    

ser = serial.Serial("COM2", 9600, timeout =5)

ser.write(0x02)
ser.write(0x65)
ser.write(0x03)
sleep(0.5)
x = ser.readline()
print(x)