乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 84|回复: 5

是否有ObjectdCollection 1。是否与Objectd集合2合并?

[复制链接]

129

主题

422

帖子

5

银币

中流砥柱

Rank: 25

铜币
936
发表于 2017-8-15 21:38:42 | 显示全部楼层 |阅读模式
想要组合两个ObjectIdCollments...只迭代每个对象并添加到第二个集合中的内容?假设我可以创建列表,但只是出于好奇而不是任何东西。
谢谢!

本帖以下内容被隐藏保护;需要你回复后,才能看到!

游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

15

主题

687

帖子

169

银币

中流砥柱

Rank: 25

铜币
582
发表于 2017-8-16 03:49:41 | 显示全部楼层
嗨,没有用于组合/串联两个ObjectIdCollections的内置方法。就我而言,我避免使用ObjectIdCollection,除非AutoCAD API需要它。一般集合(List HashSet ...)更强大,也更灵活。您可以创建一个扩展方法来模拟列表,AddRange()方法:   公共静态类扩展。
{。
public static void add range(this objectid collection ids,objectid collection other ids)。
{。
foreach(other ids中的ObjectId id)id,添加(id);。
}。
}就我而言,我宁愿使用返回新IEnumerable的Linq扩展方法,以便原始集合保持不变。   公共静态类扩展。
{。
公共静态IEnumerable  Concat(this ObjectId collection ids,IEnumerable  other ids)。
{。
返回id,强制转换(),concat(other id);。
}。

public static IEnumerable  Concat(this ObjectId collection ids,ObjectId collection other ids)。
{。
返回id,concat(other id,cast ());。
}。
}然后,如果需要,您可以轻松地将返回的IEnumerable转换为具体的集合:    List  ids3 = id S1。Concat(ids2),to list();       objectid collection id S4 = new objectid collection(id S1。Concat(ids2),ToArray());。
回复

使用道具 举报

129

主题

422

帖子

5

银币

中流砥柱

Rank: 25

铜币
936
发表于 2017-8-17 22:26:39 | 显示全部楼层
哇...谢谢你看起来超级有效率。
回复

使用道具 举报

23

主题

239

帖子

6

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
327
发表于 2017-8-17 22:42:47 | 显示全部楼层
我认为您正在寻找的功能是“联合”——您希望组合ObjectIdCollections而不引入重复。
https://msdn . Microsoft . com/en-us/library/bb 341731(v = vs . 110)。aspx
ObjectIdCollection没有它,但是Linq有,所以您需要自己编写它。也许将集合分解成List ,Union that,然后重新构建ObjectIdCollection
另一种方法是将ObjectIdCollections转换成HashTables,然后组合它们。
回复

使用道具 举报

15

主题

687

帖子

169

银币

中流砥柱

Rank: 25

铜币
582
发表于 2017-8-18 01:02:00 | 显示全部楼层
Hi,如果您想删除重复项,您可以在上层Linq扩展方法中使用Union(正如CADbloke建议的那样)而不是Concat。公共静态IEnumableUnion(this ObjectIdCollection id, IEnumable其他人)=>。
ids.Cast(),联盟(其他);。

公共静态IEnumable联合(此ObjectIdCollection id, ObjectIdCollection其他ID)=>。
ids.Union(otherIds.Cast ());。
回复

使用道具 举报

129

主题

422

帖子

5

银币

中流砥柱

Rank: 25

铜币
936
发表于 2017-8-18 21:36:59 | 显示全部楼层
再次感谢
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-2-4 13:03 , Processed in 0.178447 second(s), 64 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表