【发布时间】:2015-02-08 14:19:12
【问题描述】:
我有两个列表(例如):
var NewIDs = new List<string>();
NewIDs.AddRange(...some values...);
var OldIDs = new List<some type>()
OldIDs.AddRange(...some values...);
我需要返回 OldIDs 列表,它只包含第一个列表中的值。我是这样做的:
var newList = OldIDs.Where(p => p.Id.All(x => NewIDs.Contains(x.ToString()))).ToList();
但它返回count=0;
编辑 1: NewIDs 它只是字符串列表,但 OldIDs 它是一些结构,具有 Id 属性
编辑 2: 它是这样工作的:
var newList = new List<MyType>();
foreach (var res in NewIDs)
{
newList.AddRange(OldIDs.Where(a => a.Id == res));
}
我需要在没有foreach的情况下重写它,只使用LINQ
【问题讨论】: