'ESRI.ArcGIS.Client.GraphicCollection'不包含'AddRange'的定义

时间:2014-01-13 19:23:02

标签: c# silverlight windows-phone-7 esri

我有以下代码,即addrange方法:

foreach (var graphic in buffersList)
{
    if (!graphicsLayerHeat.Graphics.Contains(graphic))
    {
       graphicsLayerHeat.Graphics.AddRange(buffersList);  
    }
}

但视觉工作室提示我这个错误

  

'ESRI.ArcGIS.Client.GraphicCollection'不包含定义   对于'AddRange'并且没有扩展方法'AddRange'接受第一个   可以找到类型为“ESRI.ArcGIS.Client.GraphicCollection”的参数   (您是否缺少using指令或程序集引用?)

如何更改方法,以便在不使用addrange的情况下以相同的方式工作?

2 个答案:

答案 0 :(得分:2)

更改此

graphicsLayerHeat.Graphics.AddRange(buffersList);  

到此:

graphicsLayerHeat.Graphics.Add(graphic);  

我假设您不想一遍又一遍地添加bufferlist(正如其他回答者的解决方案所做的那样)。

较新版本的ESRI silverlight API确实有AddRange方法(更新时间?),但我不认为这是您想要使用的内容,因为您还想进行包含检查。 / p>

答案 1 :(得分:0)

只需使用foreach循环手动添加项目

foreach (var buffer in buffersList) {
 graphicsLayerHeat.Graphics.Add(buffer);
}

如果这是一项常见操作,您可能只想自己创建一个AddRange扩展方法

static void AddRange(this GraphicsCollection source, GraphicsCollection list) {
  foreach (var item it list) { 
    source.Add(item);
  }
}

这可能会更加通用但我不熟悉GraphicsCollection类型,所以我不知道它实现了什么接口