我在下面遇到了以下内容。它实际上对location
集合中的项目进行排序吗?在这种情况下,OrderBy
是否对AddRange
返回的数据进行操作?
var locations = new List<Location>();
locations.AddRange(propertyStreets
.Select(street => new Location
{
Name = street.Source.FullStreetName,
Type = "Address",
ItemType = ItemType.StreetName,
City = street.Source.City,
State = street.Source.State,
SortOrder = GetAddressSortOrder(street, new[] { parsedAddress })
})
.OrderBy(loc => loc));
答案 0 :(得分:3)
它实际上对位置信息集中的项目进行排序吗?
它基于以下条件:
OrderBy
在内部基于提供的表达式创建OrderedEnumerable
。在问题OrderBy(loc => loc)
中使用对象本身而不是任何属性,因此将使用默认比较。同一比较器,用于通过.Equals()
方法比较两个对象。在这种情况下,意义不大。
在这种情况下,OrderBy是否对AddRange返回的数据进行运算?
AddRange
不返回任何内容。 OrderBy
应用于您通过AddRange
方法传递的集合的投影,这意味着它正在基于排序表达式获取已排序的项目。