我有一个ID值列表:
List<int> MyIDs { get; set; }
我想将此列表传递给我的存储库的接口,并让它返回一个与我传入的ID值匹配的List。
List<MyType> myTypes = new List<MyType>();
IMyRepository myRepos = new SqlMyRepository();
myTypes = myRepos.GetMyTypes(this.MyIDs);
目前,GetMyTypes()的行为与此类似:
public MyType GetMyTypes(int id)
{
return (from myType in db.MyTypes
where myType.Id == id
select new MyType
{
MyValue = myType.MyValue
}).FirstOrDefault();
}
我遍历MyID并传递每个id并将每个结果添加到列表中。
如何更改LINQ以便我可以传递完整的MyID列表并获取MyTypes列表? GetMyTypes()将具有类似于
的签名public List<MyType> GetMyTypes(List<int> myIds)
答案 0 :(得分:2)
public List<MyType> GetMyTypes(List<int> ids)
{
return (from myType in db.MyTypes
where ids.Contains(myType.Id)
select new MyType
{
MyValue = myType.MyValue
}).ToList();
}
答案 1 :(得分:1)
未测试
public List<MyType> GetMyTypes(List<int> myIds) {
var x = from myType in db.MyTypes
where myIds.contains(myType.Id)
select new MyType {
MyValue = mytype.Myvalue
};
return x.ToList();
}