2016-07-26 83 views
0

如何從表中以相同的整數列表中獲取記錄?從C#中提供的列表的序列中提取記錄#

我有一個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

莫比嘗試'.OrderBy(某些屬性)' – MKasprzyk

+0

@MK asprzyk .OrderBy將按升序或降序排列,OP要求它的順序與'reorderNarrowerTermIds'相同。 –

+0

.OrderBy和.Select(n => n)完全不工作。 – Ronak

回答

3

這應該做的伎倆,按發生的索引排序:

var lstTerm = _context.table.Where(n => reorderNarrowerTermIds.Contains(n.TermId)).ToList() 
         .OrderBy(x => reorderNarrowerTermIds.IndexOf(x.TermId)).ToList(); 

所以在reorderNarrowerTermIds索引爲0的項目有0訂單因素,在結果列表中第一個出現。亦如升1,2,等等

+0

謝謝,它拯救了我的生命。 :) – Ronak

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

+1

您應該再次閱讀問題。 – NEER