如何从整数列表的相同序列中获取表中的记录?
我有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序列。
我被困在这里。
答案 0 :(得分:3)
这应该是诀窍,按出现索引排序:
var lstTerm = _context.table.Where(n => reorderNarrowerTermIds.Contains(n.TermId)).ToList()
.OrderBy(x => reorderNarrowerTermIds.IndexOf(x.TermId)).ToList();
因此,reorderNarrowerTermIds
中索引0处的项目的订单因子为0
,并在结果列表中首先显示。同样适用于1,2等的升序......
答案 1 :(得分:0)
仍然不确定您从_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