【发布时间】:2015-12-16 21:19:31
【问题描述】:
我有正在使用 EF 访问的数据(“DogWalk”)。在运行时,我正在确定 DogWalk 相对于输入邮政编码的距离。这很好用,但是,我无法将 IEnumerable sorted 集合返回到 ListView。
代码是方法public IEnumerable<DogWalk> ListView1_GetData() 的一部分。我有一个包含所有步行的列表
List<DogWalk> grabAllWalks = (from w in db.DogWalks.Include("Pictures")
select w).ToList();
我遍历遍历并将它们添加到存储{double distance, DogWalk theWalk} 的结构中。我还创建了一个 List 来存储匿名结构对象:
var inRangeWalks = new List<InRangeWalks>();
foreach (var walk in grabAllWalks)
{
double dis = ....;
if (dis <= radius) //if within range, add to list
{
inRangeWalks.Add(new InRangeWalks(dis, walk));
}
}
我现在根据邮政编码距离对列表进行排序:
inRangeWalks.Sort((x, y) => x.DistanceFromPostcode.CompareTo(y.DistanceFromPostcode));
问题是我需要返回一个IEnumerable 集合。我可以这样做:
IEnumerable<DogWalk> sortedWalks = inRangeWalks.Select(x => x.Walk);
但是使用 IEnumerable not guaranteeing 插入顺序,这可能会出现问题。
我有哪些选择?
【问题讨论】:
标签: c# entity-framework linq listview ienumerable