我有以下代码,即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的情况下以相同的方式工作?
答案 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
类型,所以我不知道它实现了什么接口