C# 嵌套的foreach循环和WCF RIA域服务
我试图从数据库中加载形状坐标表,以便在silverlight bing地图上绘图,我感兴趣的表结构在这里 使用wcf ria服务,我可以加载数据,但我需要代码的帮助来提取最低级别的数据(坐标)并将它们分离到集合中。最终结果应该是,我有一个LocationCollections集合,数据库中每个mapshape都有一个LocationCollection 这是我的loadoperation回调C# 嵌套的foreach循环和WCF RIA域服务,c#,silverlight,wcf-ria-services,bing-maps,C#,Silverlight,Wcf Ria Services,Bing Maps,我试图从数据库中加载形状坐标表,以便在silverlight bing地图上绘图,我感兴趣的表结构在这里 使用wcf ria服务,我可以加载数据,但我需要代码的帮助来提取最低级别的数据(坐标)并将它们分离到集合中。最终结果应该是,我有一个LocationCollections集合,数据库中每个mapshape都有一个LocationCollection 这是我的loadoperation回调 void FarmsLoaded(LoadOperation<Farm> loadO
void FarmsLoaded(LoadOperation<Farm> loadOp) {
LocationCollection lc = new LocationCollection();
foreach (Farm f in loadOp.Entities) {
foreach (FarmLocation fl in f.FarmLocations) {
foreach (MapShape ms in fl.MapShapes) {
lc.Clear();
foreach (MapPoint mp in ms.MapPoints) {
lc.Add(new Location(mp.Latitude, mp.Longitude));
}
shapeList.Add(lc); //observablecollection of LocationCollections
}
}
}
}
void FarmsLoaded(加载操作加载操作){
LocationCollection lc=新LocationCollection();
foreach(loadOp.Entities中的场f){
foreach(f.FarmLocations中的农场位置fl){
foreach(fl.MapShapes中的MapShape ms){
lc.Clear();
foreach(ms.MapPoints中的MapPoint mp){
lc.Add(新位置(中纬度、中经度));
}
shapeList.Add(lc);//LocationCollections的observablecollection
}
}
}
}
然后将shapeList绑定到地图图层。不幸的是,当我运行此命令时,只绘制了数据库中的最后一个mapshape。我想我误解了foreach嵌套是如何被遍历的,所以我希望大家能在这种情况下对正确使用嵌套foreach有所启发,或者如果foreach不合适(LINQ?)我想问题与foreach循环无关,而是与清除lc有关。由于您正在为每个mapshape启用lc,因此它们似乎也会从shapelist中删除。当您逐步查看时,shapelist是否保留了所有正确的值?当lc.Clear()被点击时,它会丢失最后的值吗?如果每次我继续创建新的LocationCollections,Clear函数会将它从shapelist中删除。如果我将lc.clear()行更改为'LocationCollection lc=new LocationCollection();'那就行了,我想我已经试过了。。。