实体框架-按照C#中提供的列表的顺序从表中获取记录
本文关键字:列表 顺序 记录 获取 框架 按照 实体 | 更新日期: 2023-09-27 17:58:33
如何从整数列表的同一序列中的表中提取记录?
我有一个list<int>
List<int> reorderNarrowerTermIds = new List<int>();
reorderNarrowerTermIds.Add(2,7,4,9);
现在我想按照上面列表的相同顺序从表中获取记录。
var lstTerm = _context.table.Where(n => reorderNarrowerTermIds.Contains(n.TermId)).ToList();
上面的linq语句给出了2,4,7,9 TermId序列中的记录,但我想要2,7,4,9 TermId序列。
我被困在这里了。
这应该可以做到,按照出现的索引排序:
var lstTerm = _context.table.Where(n => reorderNarrowerTermIds.Contains(n.TermId)).ToList()
.OrderBy(x => reorderNarrowerTermIds.IndexOf(x.TermId)).ToList();
因此,reorderNarrowerTermIds
中索引0处的项目具有0
的顺序因子,并且在结果列表中首先显示。同样适用于1、2等的升序。
仍然不确定您从_context.table
获得的信息是什么样子
List<int> SearchNumbers = new List<int> { 2,7,4,8 };
List<int> numbers = new List<int> { 1,2,3,4,5,6,7,8,9 };
var lstTerm = numbers.Where(n => SearchNumbers.Contains(n)).ToList();
这将显示2,4,7,8
List<int> SearchNumbers = new List<int> { 2,7,4,8 };
List<int> numbers = new List<int> { 1,2,3,4,5,6,7,8,9 };
var lstTerm = SearchNumbers.Where(n => numbers.Contains(n)).ToList();
这将显示2,7,4,8