我有两个清单
static List<dynamic> List1= new List<dynamic>();
list<string> List2
List1是{Message='asdasd',Mobilenum=995955}
如果列表2中的值在list1中,我想从List1中删除所有元素吗?
我已经这样做了但是没有用
List1.RemoveAll(c => list2.ToList().Exists(n => n.Mobilenum== c.Values));
答案 0 :(得分:0)
List1.RemoveAll(c => List2.Contains(c.Mobilenum));
但用实际类型替换dynamic
。通常你不需要使用它。如果它是匿名类型并且您必须传递此列表,请考虑使用这些属性实现新类型。
答案 1 :(得分:0)
首先,创建一个类型而不是使用dynamic
:
public class MyType
{
public string Message;
public string Mobilenum;
}
然后,你可以这样做:
var List1 = new List<MyType>();
// ...build your list
var List2 = new List<string>();
// ...build your other list
var res = List1.Where(x => !List2.Contains(x.Mobilenum));
避免使用删除,除非您确定要丢弃信息,而不是仅仅为特定用途“过滤”它。