C# 尝试使用字典中的 Visio 形状
本文关键字:Visio 形状 字典 | 更新日期: 2023-09-27 18:33:04
我正在使用 Visio 和 c#,我对 Visio 中的形状有问题。
我提供了一个带有字符串和 Visio 形状的字典
SortedDictionary<string, Visio.Shape> DicShapes
= new SortedDictionary<string, Visio.Shape>();
DicShapes.Add("Pos3", shape_Pos3);
所以,如果我现在尝试使用Visio.Shape,我得到了一个COMExeption。
foreach (KeyValuePair<string, Visio.Shape> kvp2 in DicShapes)
{
if (kvp2.Key == "Pos3")
{
beginXCell.GlueToPos(kvp2.Value, 0.5, 1);
}
}
谁能给我一个提示,我做错了什么?
既然你说你的密钥将是唯一的,我建议
Visio.Shape selectedShape;
if (DicShapes.TryGetValue("Pos3", out selectedShape))
{
beginXCell.GlueToPos(selectedShape, 0.5, 1);
}
而不是遍历整个SortedDictionary
.
如果必须处理非唯一键,则可以使用 linq 扩展方法提取所需的子集:
var filtered = DicShapes.Where(kvp => kvp.Key == "Pos3");