我在有序数组上使用LINQ to Objects指令.我不应该做哪些操作来确保数组的顺序没有改变?
我有一个ID号的集合,我希望返回一些对象,我是通过使用linq语句来实现的,其中使用了包含语句的地方:
var recentCats = (from i in EntityCache.Default.GetAll<Categories>()
where WebProfile.Current.RecentlyCreatedCategories.Contains(i.Id)
&& BoundCategory.ParentItemClass.Id.Equals(i.ParentItemClass.Id)
select new CategoryInfo()
{
Category = i,
ClassId = i.ParentItemClass.Id,
ClassImage = NamedResourceManager.GetResourceBinary(i.ParentItemClass.NameResourceId)
});
Run Code Online (Sandbox Code Playgroud)
这完全正常,除了我想保持返回集合中的项目顺序与它们在列表中的顺序相同.例如,如果我有一个ID列表:14,603,388,我想要返回的对象的顺序不同,而不是缓存返回的顺序.有没有办法在实体框架中执行此操作,或以任何方式执行此操作而不涉及我编写foreach循环?
谢谢
问题:LINQ查询的结果是否始终保证正确的顺序?
例:
int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };
var lowNums =
from n in numbers
where n < 5
select n;
Run Code Online (Sandbox Code Playgroud)
现在,当我们浏览查询结果的条目时,它是否与订购输入数据numbers
的顺序相同?
foreach (var x in lowNums)
{
Console.WriteLine(x);
}
Run Code Online (Sandbox Code Playgroud)
如果有人可以提供文档中的订单说明,这将是完美的.