什么类型的参数同时接受 List 和 DataRowCollection 并且既可索引又可编号?

发布于 2024-11-03 10:57:00 字数 144 浏览 0 评论 0原文

我想编写一个方法,该方法的参数接受 ListDataRowCollection 作为值,并且既可索引又可编号,但我不知道该怎么做。是否可以使用可用的类和接口?

谢谢& BR-马蒂

I want to write a method that has parameter that accepts both List<T> and DataRowCollection as value and is both indexable and numberable but I don't know how to do it. Is it possible with available classes and interfaces?

Thanks & BR - matti

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

放赐 2024-11-10 10:57:00

您无法指定像 where T : [] 这样的类型约束,并且索引器属性没有通用接口。 ListDataRowCollection 都是 IEnumerableICollection 但我认为这不会给你带来太多好处。所以不,不可能指定“类型需要是可索引集合”之类的内容。

更新:我刚刚看到DataRowCollection有一个List属性,它将集合作为ArrayList返回,它是一个<代码> IList 。因此,假设您想编写一个扩展方法,您可以将其定位到 IList

更新 2:另一种选择:您可以定位 IEnumerable 并使用 Linq <代码>ElementAt()。但不确定它是否会使用 DataRowCollection 的索引属性。

You cannot specify a type constraint like where T : [] and there is no generic interface for an indexer property. List and DataRowCollection both are IEnumerable and ICollection but I assume that doesn't gain you much. So no, it's not possible to specify something like "A type needs to be an indexable collection".

Update: I just saw that DataRowCollection has a List property which returns the collection as a ArrayList which is an IList. So assuming you want to write an extension method you could target it to IList

Update 2: Another option: you could target IEnumerable and use Linq ElementAt(). Not sure if it will use the index property for DataRowCollection though.

天暗了我发光 2024-11-10 10:57:00

ListDataRowCollection 实现 IEnumerableICollection 因此您可以根据需要使用该方法需要去做。

Both List<T> and DataRowCollection implement IEnumerable and ICollection so you could use either depending what the method needs to do.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文