C# ';ESRI.ArcGIS.Client.GraphicCollection';不包含';添加范围';
我有以下代码是addrange方法:C# ';ESRI.ArcGIS.Client.GraphicCollection';不包含';添加范围';,c#,silverlight,windows-phone-7,esri,C#,Silverlight,Windows Phone 7,Esri,我有以下代码是addrange方法: foreach (var graphic in buffersList) { if (!graphicsLayerHeat.Graphics.Contains(graphic)) { graphicsLayerHeat.Graphics.AddRange(buffersList); } } 但是VisualStudio提示我这个错误 “ESRI.ArcGIS.Client.GraphicCollection”不包含
foreach (var graphic in buffersList)
{
if (!graphicsLayerHeat.Graphics.Contains(graphic))
{
graphicsLayerHeat.Graphics.AddRange(buffersList);
}
}
但是VisualStudio提示我这个错误
“ESRI.ArcGIS.Client.GraphicCollection”不包含定义
对于“AddRange”且没有扩展方法“AddRange”接受第一个
找不到类型为“ESRI.ArcGIS.Client.GraphicCollection”的参数
(是否缺少using指令或程序集引用?)
如何更改方法,使其在不使用addrange的情况下以相同的方式工作?只需使用
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
类型,所以我不知道它实现了什么接口改变了这一点
graphicsLayerHeat.Graphics.AddRange(buffersList);
为此:
graphicsLayerHeat.Graphics.Add(graphic);
我假设您不想一次又一次地添加bufferlist
(就像其他回答者的解决方案那样)
较新版本的ESRI silverlight API确实有一个AddRange
方法(更新时间?),但我认为这不是您希望使用的方法,因为您还希望执行包含检查