您需要在字符串数组中找到具有匹配 id 的 TagObjects,因此您可以使用Where()
and Contains()
:
ICollection<TagObject> collection;
string[] ids = new[] { "1", "2", "3" };
collection = source.Where(t => ids.Contains(t.TagID.ToString())).ToList();
源中的每个项目TagObject
都将使用ids.Contains(t.TagID.ToString())
表达式进行评估。如果TagObject
id 与ids
数组匹配,则此表达式将返回true
,导致TagObject
已评估的 包含在 的结果中Where()
。
编辑
因为它是 Linq to Entities,所以绕过错误的简单方法:
LINQ to Entities 无法识别方法“System.String ToString()”方法,并且该方法无法转换为存储表达式。
会事先将您的 ids 数组转换为整数:
ICollection<TagObject> collection;
string[] ids = new[] { "1", "2", "3" };
int[] convertedIds = ids.Select(id => Convert.ToInt32(id)).ToArray();
collection = source.Where(t => convertedIds.Contains(t.TagID)).ToList();